home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / lang / sofa.lha / sofa / smalleiffel / bin_c / compile_to_c15.c < prev    next >
C/C++ Source or Header  |  2000-03-25  |  106KB  |  4,549 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.76Beta#1)--
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                  http://SmallEiffel.loria.fr/                --
  7. */
  8. #include "compile_to_c.h"
  9.  
  10.  
  11. void r246warning(T68 a1,T0* a2){
  12. r66add_position(a1);
  13. /*[IRF3.6append*/{T0* b1=a2;
  14. r7append((T7*)(oBC66explanation),b1);
  15. }/*]*/
  16. r66print_as_warning((T66*)(oBC13eh));
  17. }
  18.  
  19.  
  20. void r246c2c_clear_expanded(T246* C,T2 a1){
  21. X104compile_to_c((/*RF2*/(C)->_writable/*12*/));
  22. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  23. T3 b1=((T3)'\75');
  24. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  25. }/*]*/
  26. /*]*/
  27. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  28. T3 b1=((T3)'M');
  29. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  30. }/*]*/
  31. /*]*/
  32. /*[IRF3.5put_integer*/r48put_integer(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),a1);
  33. /*]*/
  34. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_138));
  35. /*]*/
  36. }
  37.  
  38.  
  39. void r246c2c_closing(T246* C,T0* a1){
  40. T0* _once_result=NULL;
  41. _once_result=(/*RF2*/(C)->_writable/*12*/);
  42. if(NULL!=(_once_result)){
  43. switch(((T0*)_once_result)->id){
  44. case 145:
  45. break;
  46. default:
  47. _once_result=NULL;
  48. }
  49. }/*[IF*/
  50. if((_once_result)==((void*)(NULL))){
  51. X104compile_to_c((/*RF2*/(C)->_writable/*12*/));
  52. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms248_4213));
  53. /*]*/
  54. }
  55. /*FI]*/
  56. /*[IF*/
  57. if(r325call_invariant_start(a1)){
  58. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  59. T3 b1=((T3)'n');
  60. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  61. }/*]*/
  62. /*]*/
  63. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T48* C1=(T48*)(oBC325out_c);
  64. T3 b1=((T3)'\51');
  65. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  66. }/*]*/
  67. /*]*/
  68. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  69. T3 b1=((T3)'\73');
  70. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  71. }/*]*/
  72. /*]*/
  73. }
  74. /*FI]*/
  75. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  76. T3 b1=((T3)'\175');
  77. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  78. }/*]*/
  79. /*]*/
  80. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  81. T3 b1=((T3)'\n');
  82. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  83. }/*]*/
  84. /*]*/
  85. }
  86.  
  87.  
  88. T0* r246add_comment(T246* C,T0* a1){
  89. T0* R=NULL;
  90. /*[IF*/
  91. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
  92. R=((T0*)(C));
  93. }
  94. /*AF*/else{
  95. {T224*n=((T224*)malloc(sizeof(*n))/*12*/);
  96. *n=M224;
  97. r224make(n,(T0*)C,a1);
  98. R=((T0*)n);
  99. }
  100. }
  101. /*FI]*/
  102. return R;
  103. }
  104.  
  105.  
  106. void r246check_created_type(T246* C,T0* a1){
  107. T0* _rt=NULL;
  108. _rt=X52run_type(a1);
  109. /*[IF*/
  110. if((/*RF2*/((T49*)(oBC13small_eiffel))->_short_flag/*5*/)){
  111. }
  112.  else if((/*RF2*/((T51*)(X52base_class(_rt)))->_is_deferred/*16*/)){
  113. r66add_type(_rt,((T0*)ms248_11648));
  114. r246warning((/*RF2*/(C)->_start_position/*4*/),((T0*)ms248_30681));
  115. }
  116. /*FI]*/
  117. /*[IF*/
  118. if(X52is_formal_generic(a1)){
  119. r66add_position((/*RF2*/(C)->_start_position/*4*/));
  120. /*[IRF3.6append*/{T0* b1=((T0*)ms248_76570);
  121. r7append((T7*)(oBC66explanation),b1);
  122. }/*]*/
  123. r66add_type(a1,((T0*)ms248_174));
  124. r66print_as_fatal_error((T66*)(oBC13eh));
  125. }
  126. /*FI]*/
  127. r50set_at_run_time((T50*)(X52run_class(_rt)));
  128. }
  129.  
  130.  
  131. void r246compile_to_c(T246* C){
  132. T0* _t=NULL;
  133. _t=X52run_type(X104result_type((/*RF2*/(C)->_writable/*12*/)));
  134. /*[IF*/
  135. if(X52is_reference(_t)){
  136. r246c2c_opening(C,_t);
  137. r246c2c_closing(C,_t);
  138. }
  139. else{
  140. r246c2c_clear_expanded(C,X52id(_t));
  141. }
  142. /*FI]*/
  143. }
  144.  
  145.  
  146. void r246check_creation_clause(T246* C,T0* a1){
  147. /*[IF*/
  148. if(/*(IRF4.7has_creation_clause*/((/*RF2*/((T51*)(X52base_class(a1)))->_creation_clause_list/*38*/))!=(NULL)/*)*/){
  149. /*[IRF3.6append*/{T0* b1=((T0*)ms247_36693);
  150. r7append((T7*)(oBC66explanation),b1);
  151. }/*]*/
  152. r66add_type(a1,((T0*)ms247_156));
  153. r246error((/*RF2*/(C)->_start_position/*4*/),((T0*)ms247_45900));
  154. }
  155. /*FI]*/
  156. }
  157.  
  158.  
  159. void r246check_writable(T246* C,T0* a1){
  160. T0* _w=NULL;
  161. (/*SFN*/C->_current_type)=a1;
  162. _w=X104to_runnable((/*RF2*/(C)->_writable/*12*/),a1);
  163. /*[IF*/
  164. if((_w)==((void*)(NULL))){
  165. {T68 se_tmp0;
  166. r66add_position((*(se_tmp0=X104start_position((/*RF2*/(C)->_writable/*12*/)),&se_tmp0)));
  167. }
  168. r246fatal_error(((T0*)ms248_63756));
  169. }
  170. else{
  171. (/*SFN*/C->_writable)=_w;
  172. }
  173. /*FI]*/
  174. }
  175.  
  176.  
  177. T6 r246use_current(T246* C){
  178. T6 R=0;
  179. R=X104use_current((/*RF2*/(C)->_writable/*12*/));
  180. return R;
  181. }
  182.  
  183.  
  184. T6 r246stupid_switch(T246* C,T0* a1){
  185. T6 R=0;
  186. T0* _t=NULL;
  187. /*[IF*/
  188. /*AF*//*AE*/
  189. _t=X104result_type((/*RF2*/(C)->_writable/*12*/));
  190. /*FI]*/
  191. /*[IF*/
  192. if(X52is_anchored(_t)){
  193. }
  194.  else if(X52is_generic(_t)){
  195. }
  196. else{
  197. /*[IF*/
  198. {/*AT*/R=X104stupid_switch((/*RF2*/(C)->_writable/*12*/),a1);
  199. }
  200. /*FI]*/
  201. }
  202. /*FI]*/
  203. return R;
  204. }
  205.  
  206.  
  207. T0* r246to_runnable(T246* C,T0* a1){
  208. T0* R=NULL;
  209. T0* _t=NULL;
  210. /*[IF*/
  211. if(((/*RF2*/(C)->_current_type/*16*/))==((void*)(NULL))){
  212. r246check_writable(C,a1);
  213. _t=X104result_type((/*RF2*/(C)->_writable/*12*/));
  214. r246check_created_type(C,_t);
  215. r246check_creation_clause(C,_t);
  216. R=((T0*)(C));
  217. }
  218. else{
  219. {T246*n=((T246*)malloc(sizeof(*n))/*20*/);
  220. *n=M246;
  221. r246make(n,(/*RF2*/(C)->_start_position/*4*/),(/*RF2*/(C)->_writable/*12*/));
  222. R=((T0*)n);
  223. }
  224. R=r246to_runnable(((T246*)R),a1);
  225. }
  226. /*FI]*/
  227. return R;
  228. }
  229.  
  230.  
  231. void r246c2c_opening(T246* C,T0* a1){
  232. T0* _once_result=NULL;
  233. T0* _rc=NULL;
  234. _rc=X52run_class(a1);
  235. r325se_trace_ins((T325*)(oBC13cpp),(/*RF2*/(C)->_start_position/*4*/));
  236. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  237. T3 b1=((T3)'\173');
  238. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  239. }/*]*/
  240. /*]*/
  241. r344allocation((T344*)(oBC13gc_handler),_rc);
  242. r325expanded_attributes((T325*)(oBC13cpp),a1);
  243. _once_result=(/*RF2*/(C)->_writable/*12*/);
  244. if(NULL!=(_once_result)){
  245. switch(((T0*)_once_result)->id){
  246. case 145:
  247. break;
  248. default:
  249. _once_result=NULL;
  250. }
  251. }/*[IF*/
  252. if((_once_result)!=((void*)(NULL))){
  253. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),r145c_variable_name(((T145*)_once_result)));
  254. /*]*/
  255. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms248_4213a));
  256. /*]*/
  257. }
  258. /*FI]*/
  259. }
  260.  
  261.  
  262. T6 r246is_pre_computable(T246* C){
  263. T6 R=0;
  264. R=X104is_result((/*RF2*/(C)->_writable/*12*/));
  265. return R;
  266. }
  267.  
  268.  
  269. void r246error(T68 a1,T0* a2){
  270. r66add_position(a1);
  271. /*[IRF3.6append*/{T0* b1=a2;
  272. r7append((T7*)(oBC66explanation),b1);
  273. }/*]*/
  274. r66print_as_error((T66*)(oBC13eh));
  275. }
  276.  
  277.  
  278. T0* r231add_comment(T231* C,T0* a1){
  279. T0* R=NULL;
  280. /*[IF*/
  281. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
  282. R=((T0*)(C));
  283. }
  284.  else {/*AT*//*[IF*/
  285. if((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(1)){
  286. R=((T0*)(C));
  287. }
  288. else{
  289. {T224*n=((T224*)malloc(sizeof(*n))/*12*/);
  290. *n=M224;
  291. r224make(n,(T0*)C,a1);
  292. R=((T0*)n);
  293. }
  294. }
  295. /*FI]*/
  296. }
  297. /*FI]*/
  298. return R;
  299. }
  300.  
  301.  
  302. void r231afd_check(T231* C){
  303. X104afd_check((/*RF2*/(C)->_expression/*12*/));
  304. /*[IF*/
  305. if(((/*RF2*/(C)->_when_list/*16*/))!=((void*)(NULL))){
  306. r233afd_check((T233*)((/*RF2*/(C)->_when_list/*16*/)));
  307. }
  308. /*FI]*/
  309. /*[IF*/
  310. if(((/*RF2*/(C)->_else_compound/*28*/))!=((void*)(NULL))){
  311. r215afd_check((T215*)((/*RF2*/(C)->_else_compound/*28*/)));
  312. }
  313. /*FI]*/
  314. }
  315.  
  316.  
  317. void r231set_else_compound(T231* C,T68 a1,T0* a2){
  318. (/*SFN*/C->_else_position)=a1;
  319. (/*SFN*/C->_else_compound)=a2;
  320. }
  321.  
  322.  
  323. T6 r231use_current(T231* C){
  324. T6 R=0;
  325. R=(R)||(X104use_current((/*RF2*/(C)->_expression/*12*/)));
  326. /*[IF*/
  327. if(((/*RF2*/(C)->_when_list/*16*/))!=((void*)(NULL))){
  328. R=(R)||(r233use_current((T233*)((/*RF2*/(C)->_when_list/*16*/))));
  329. }
  330. /*FI]*/
  331. /*[IF*/
  332. if(((/*RF2*/(C)->_else_compound/*28*/))!=((void*)(NULL))){
  333. R=(R)||(r215use_current((T215*)((/*RF2*/(C)->_else_compound/*28*/))));
  334. }
  335. /*FI]*/
  336. return R;
  337. }
  338.  
  339.  
  340. T0* r231to_runnable(T231* C,T0* a1){
  341. T0* R=NULL;
  342. T0* _wl=NULL;
  343. T0* _te=NULL;
  344. T0* _e=NULL;
  345. /*[IF*/
  346. if(((/*RF2*/(C)->_current_type/*32*/))==((void*)(NULL))){
  347. (/*SFN*/C->_current_type)=a1;
  348. _e=X104to_runnable((/*RF2*/(C)->_expression/*12*/),a1);
  349. /*[IF*/
  350. if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
  351. (/*SFN*/C->_expression)=_e;
  352. _te=X52run_type(X104result_type(_e));
  353. }
  354. /*FI]*/
  355. /*[IF*/
  356. if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
  357. /*[IF*/
  358. if(X52is_character(_te)){
  359. /*[IF*/
  360. if(((/*RF2*/(C)->_when_list/*16*/))!=((void*)(NULL))){
  361. (/*SFN*/C->_when_list)=r233to_runnable_character((T233*)((/*RF2*/(C)->_when_list/*16*/)),(T0*)C);
  362. /*[IF*/
  363. if(((/*RF2*/(C)->_when_list/*16*/))==((void*)(NULL))){
  364. r231error((/*RF2*/(C)->_start_position/*4*/),((T0*)ms231_11424));
  365. }
  366. /*FI]*/
  367. }
  368. /*FI]*/
  369. }
  370.  else if(X52is_integer(_te)){
  371. /*[IF*/
  372. if(((/*RF2*/(C)->_when_list/*16*/))!=((void*)(NULL))){
  373. (/*SFN*/C->_when_list)=r233to_runnable_integer((T233*)((/*RF2*/(C)->_when_list/*16*/)),(T0*)C);
  374. /*[IF*/
  375. if(((/*RF2*/(C)->_when_list/*16*/))==((void*)(NULL))){
  376. r231error((/*RF2*/(C)->_start_position/*4*/),((T0*)ms231_11424));
  377. }
  378. /*FI]*/
  379. }
  380. /*FI]*/
  381. }
  382. else{
  383. /*[IRF3.6append*/{T0* b1=((T0*)ms231_94240);
  384. r7append((T7*)(oBC66explanation),b1);
  385. }/*]*/
  386. r66add_type(_te,((T0*)ms231_18080));
  387. r66add_position((/*RF2*/(C)->_start_position/*4*/));
  388. r66print_as_error((T66*)(oBC13eh));
  389. }
  390. /*FI]*/
  391. }
  392. /*FI]*/
  393. /*[IF*/
  394. if(((/*RF2*/(C)->_else_compound/*28*/))!=((void*)(NULL))){
  395. (/*SFN*/C->_else_compound)=r215to_runnable((T215*)((/*RF2*/(C)->_else_compound/*28*/)),a1);
  396. }
  397. /*FI]*/
  398. R=((T0*)(C));
  399. }
  400. else{
  401. R=r231twin(C);
  402. {T233*n=((T233*)malloc(sizeof(*n))/*8*/);
  403. *n=M233;
  404. r233from_when_list(n,(/*RF2*/(C)->_when_list/*16*/));
  405. _wl=((T0*)n);
  406. }
  407. /*[IRF3.3set_when_list*/((((T231*)(((T231*)R))))->_when_list)=(_wl);
  408. /*]*/
  409. /*[IRF3.3clear_current_type*/((((T231*)(((T231*)R))))->_current_type)=(NULL);
  410. /*]*/
  411. R=r231to_runnable(((T231*)R),a1);
  412. }
  413. /*FI]*/
  414. return R;
  415. }
  416.  
  417.  
  418. T0* r231twin(T231* C){
  419. T0* R=NULL;
  420. R=malloc(sizeof(*C));
  421. *((T231*)R)=*C;
  422. return R;
  423. }
  424.  
  425.  
  426. void r231error(T68 a1,T0* a2){
  427. r66add_position(a1);
  428. /*[IRF3.6append*/{T0* b1=a2;
  429. r7append((T7*)(oBC66explanation),b1);
  430. }/*]*/
  431. r66print_as_error((T66*)(oBC13eh));
  432. }
  433.  
  434.  
  435. void r231make(T231* C,T68 a1,T0* a2){
  436. (/*SFN*/C->_start_position)=a1;
  437. (/*SFN*/C->_expression)=a2;
  438. }
  439.  
  440.  
  441. void r231compile_to_c(T231* C){
  442. T6 _debug_check=0;
  443. T6 _no_check=0;
  444. _no_check=r47no_check((T47*)(oBC13run_control));
  445. _debug_check=r47debug_check((T47*)(oBC13run_control));
  446. r325inspect_incr((T325*)(oBC13cpp));
  447. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms231_2430));
  448. /*]*/
  449. r325put_inspect((T325*)(oBC13cpp));
  450. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  451. T3 b1=((T3)'\75');
  452. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  453. }/*]*/
  454. /*]*/
  455. /*[IF*/
  456. if(_debug_check){
  457. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  458. T3 b1=((T3)'\50');
  459. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  460. }/*]*/
  461. /*]*/
  462. {T68 se_tmp0;
  463. r325se_trace_exp((T325*)(oBC13cpp),(*(se_tmp0=X104start_position((/*RF2*/(C)->_expression/*12*/)),&se_tmp0)));
  464. }
  465. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  466. T3 b1=((T3)'\54');
  467. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  468. }/*]*/
  469. /*]*/
  470. }
  471. /*FI]*/
  472. X104compile_to_c((/*RF2*/(C)->_expression/*12*/));
  473. /*[IF*/
  474. if(_debug_check){
  475. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  476. T3 b1=((T3)'\51');
  477. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  478. }/*]*/
  479. /*]*/
  480. }
  481. /*FI]*/
  482. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_138));
  483. /*]*/
  484. /*[IF*/
  485. if(((/*RF2*/(C)->_when_list/*16*/))==((void*)(NULL))){
  486. /*[IF*/
  487. if(r68is_unknown(&((/*RF2*/(C)->_else_position/*20*/)))){
  488. /*[IF*/
  489. if(_no_check){
  490. r380incorrect_inspect_value((T380*)(oBC13exceptions_handler),(/*RF2*/(C)->_start_position/*4*/));
  491. }
  492. /*FI]*/
  493. }
  494.  else if(((/*RF2*/(C)->_else_compound/*28*/))!=((void*)(NULL))){
  495. r215compile_to_c((T215*)((/*RF2*/(C)->_else_compound/*28*/)));
  496. }
  497. /*FI]*/
  498. }
  499. else{
  500. r233compile_to_c((T233*)((/*RF2*/(C)->_when_list/*16*/)),(/*RF2*/(C)->_else_position/*20*/));
  501. /*[IF*/
  502. if(r68is_unknown(&((/*RF2*/(C)->_else_position/*20*/)))){
  503. /*[IF*/
  504. if(_no_check){
  505. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  506. T3 b1=((T3)'\40');
  507. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  508. }/*]*/
  509. /*]*/
  510. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_1700));
  511. /*]*/
  512. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  513. T3 b1=((T3)'\173');
  514. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  515. }/*]*/
  516. /*]*/
  517. r380incorrect_inspect_value((T380*)(oBC13exceptions_handler),(/*RF2*/(C)->_start_position/*4*/));
  518. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  519. T3 b1=((T3)'\175');
  520. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  521. }/*]*/
  522. /*]*/
  523. }
  524. /*FI]*/
  525. }
  526.  else if(((/*RF2*/(C)->_else_compound/*28*/))!=((void*)(NULL))){
  527. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  528. T3 b1=((T3)'\40');
  529. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  530. }/*]*/
  531. /*]*/
  532. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_1700));
  533. /*]*/
  534. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  535. T3 b1=((T3)'\173');
  536. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  537. }/*]*/
  538. /*]*/
  539. r215compile_to_c((T215*)((/*RF2*/(C)->_else_compound/*28*/)));
  540. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  541. T3 b1=((T3)'\175');
  542. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  543. }/*]*/
  544. /*]*/
  545. }
  546. /*FI]*/
  547. }
  548. /*FI]*/
  549. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_270a));
  550. /*]*/
  551. r325inspect_decr((T325*)(oBC13cpp));
  552. }
  553.  
  554.  
  555. T6 r231stupid_switch(T231* C,T0* a1){
  556. T6 R=0;
  557. R=((X104stupid_switch((/*RF2*/(C)->_expression/*12*/),a1))&&((((/*RF2*/(C)->_when_list/*16*/))==((void*)(NULL)))||(r233stupid_switch((T233*)((/*RF2*/(C)->_when_list/*16*/)),a1))))&&((((/*RF2*/(C)->_else_compound/*28*/))==((void*)(NULL)))||(r215stupid_switch((T215*)((/*RF2*/(C)->_else_compound/*28*/)),a1)));
  558. return R;
  559. }
  560.  
  561.  
  562. void r231add_when(T231* C,T0* a1){
  563. /*[IF*/
  564. if(((/*RF2*/(C)->_when_list/*16*/))==((void*)(NULL))){
  565. {T233*n=((T233*)malloc(sizeof(*n))/*8*/);
  566. *n=M233;
  567. r233make(n,a1);
  568. (/*SFN*/C->_when_list)=((T0*)n);
  569. }
  570. }
  571. else{
  572. /*[IRF3.5add_last*/r234add_last(((T234*)((/*RF2*/((T233*)((/*RF2*/(C)->_when_list/*16*/)))->_list/*4*/))),a1);
  573. /*]*/
  574. }
  575. /*FI]*/
  576. }
  577.  
  578.  
  579. T6 r50is_wa_cycle(T50* C,T0* a1){
  580. T6 R=0;
  581. /*[IF*/
  582. if((C)==((void*)(a1))){
  583. R=1;
  584. }
  585. /*FI]*/
  586. return R;
  587. }
  588.  
  589.  
  590. void r50shared_attributes(T50* C,T0* a1){
  591. T2 _i=0;
  592. T0* _rf2=NULL;
  593. _i=1;
  594. while (!((_i)>((/*RF2*/((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)))->_count/*36*/))))
  595. {
  596. _rf2=r348item((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_i);
  597. if(NULL!=(_rf2)){
  598. switch(((T0*)_rf2)->id){
  599. case 345:
  600. break;
  601. default:
  602. _rf2=NULL;
  603. }
  604. }/*[IF*/
  605. if((_rf2)!=((void*)(NULL))){
  606. _rf2=r50get_feature(((T50*)a1),(/*RF2*/(((T345*)_rf2))->_name/*12*/));
  607. if(NULL!=(_rf2)){
  608. switch(((T0*)_rf2)->id){
  609. case 345:
  610. break;
  611. default:
  612. _rf2=NULL;
  613. }
  614. }}
  615. /*FI]*/
  616. _i=(_i)+(1);
  617. }
  618. }
  619. T0*oBC50tmp_string=NULL;
  620.  
  621.  
  622. void r50c_header_pass1(T50* C){
  623. /*[IF*/
  624. if((/*RF2*/(C)->_at_run_time/*8*/)){
  625. /*[IF*/
  626. if(((/*RF2*/(C)->_c_header_pass_level_done/*35*/))<(1)){
  627. X52c_header_pass1((/*RF2*/(C)->_current_type/*0*/));
  628. (/*SFN*/C->_c_header_pass_level_done)=1;
  629. }
  630. /*FI]*/
  631. }
  632. /*FI]*/
  633. }
  634.  
  635.  
  636. void r50just_before_gc_mark_in(T50* C,T0* a1){
  637. /*[IF*/
  638. if((/*RF2*/(C)->_at_run_time/*8*/)){
  639. X52just_before_gc_mark_in((/*RF2*/(C)->_current_type/*0*/),a1);
  640. }
  641. /*FI]*/
  642. }
  643.  
  644.  
  645. T0* r50at(T50* C,T0* a1){
  646. T0* R=NULL;
  647. T0* _to_key=NULL;
  648. _to_key=X82to_key(a1);
  649. /*[IF*/
  650. if(r348has((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_to_key)){
  651. R=r348at((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_to_key);
  652. }
  653. /*FI]*/
  654. return R;
  655. }
  656.  
  657.  
  658. void r50c_header_pass3(T50* C){
  659. T0* _attribute_type=NULL;
  660. T2 _i=0;
  661. /*[IF*/
  662. if((/*RF2*/(C)->_at_run_time/*8*/)){
  663. /*[IF*/
  664. if(((/*RF2*/(C)->_c_header_pass_level_done/*35*/))<(3)){
  665. /*[IF*/
  666. if((X52is_user_expanded((/*RF2*/(C)->_current_type/*0*/)))&&((r50writable_attributes(C))!=((void*)(NULL)))){
  667. _i=(/*RF2*/((T346*)(r50writable_attributes(C)))->_upper/*12*/);
  668. while (!((_i)==(0)))
  669. {
  670. _attribute_type=(/*RF2*/((T345*)(r346item((T346*)(r50writable_attributes(C)),_i)))->_result_type/*28*/);
  671. /*[IF*/
  672. if(X52is_expanded(_attribute_type)){
  673. r50c_header_pass3((T50*)(X52run_class(_attribute_type)));
  674. }
  675. /*FI]*/
  676. _i=(_i)-(1);
  677. }
  678. }
  679. /*FI]*/
  680. X52c_header_pass3((/*RF2*/(C)->_current_type/*0*/));
  681. (/*SFN*/C->_c_header_pass_level_done)=3;
  682. }
  683. /*FI]*/
  684. }
  685. /*FI]*/
  686. }
  687.  
  688.  
  689. T0* r50base_class(T50* C){
  690. T0* R=NULL;
  691. R=X52base_class((/*RF2*/(C)->_current_type/*0*/));
  692. return R;
  693. }
  694.  
  695.  
  696. void r50afd_check(T50* C){
  697. T0* _rt=NULL;
  698. T0* _rc=NULL;
  699. T2 _i=0;
  700. T0* _rf=NULL;
  701. _i=1;
  702. while (!((_i)>((/*RF2*/((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)))->_count/*36*/))))
  703. {
  704. _rf=r348item((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_i);
  705. X334afd_check(_rf);
  706. _rt=X334result_type(_rf);
  707. /*[IF*/
  708. if((_rt)!=((void*)(NULL))){
  709. /*[IF*/
  710. if(X52is_none(_rt)){
  711. }
  712. else{
  713. _rc=X52run_class(_rt);
  714. }
  715. /*FI]*/
  716. }
  717. /*FI]*/
  718. _i=(_i)+(1);
  719. }
  720. /*[IF*/
  721. if(((/*RF2*/(C)->_class_invariant/*13*/))!=((void*)(NULL))){
  722. r102afd_check((T102*)((/*RF2*/(C)->_class_invariant/*13*/)));
  723. }
  724. /*FI]*/
  725. }
  726.  
  727.  
  728. T6 r50gt(T0* a1,T0* a2){
  729. T6 R=0;
  730. T0* _bcn2=NULL;
  731. T0* _bcn1=NULL;
  732. T0* _bf2=NULL;
  733. T0* _bf1=NULL;
  734. T0* _bc2=NULL;
  735. T0* _bc1=NULL;
  736. _bf1=(/*RF2*/(((T345*)a1))->_base_feature/*24*/);
  737. _bf2=(/*RF2*/(((T345*)a2))->_base_feature/*24*/);
  738. _bc1=/*SSWARF2*//*X90base_class*/(/*RF2*/(((T198*)_bf1))->_base_class/*4*/);
  739. _bc2=/*SSWARF2*//*X90base_class*/(/*RF2*/(((T198*)_bf2))->_base_class/*4*/);
  740. _bcn1=(/*RF2*/(((T51*)_bc1))->_name/*18*/);
  741. _bcn2=(/*RF2*/(((T51*)_bc2))->_name/*18*/);
  742. /*[IF*/
  743. if(((/*RF2*/(((T61*)_bcn1))->_to_string/*8*/))==((void*)((/*RF2*/(((T61*)_bcn2))->_to_string/*8*/)))){
  744. {T68 se_tmp1;
  745. T68 se_tmp0;
  746. R=r68before(&((*(se_tmp0=X90start_position(_bf1),&se_tmp0))),(*(se_tmp1=X90start_position(_bf2),&se_tmp1)));
  747. }
  748. }
  749.  else if(r61is_subclass_of(((T61*)_bcn2),_bcn1)){
  750. R=1;
  751. }
  752.  else if(r61is_subclass_of(((T61*)_bcn1),_bcn2)){
  753. }
  754.  else if(((/*RF2*/(((T51*)_bc1))->_parent_list/*34*/))==((void*)(NULL))){
  755. /*[IF*/
  756. if(((/*RF2*/(((T51*)_bc2))->_parent_list/*34*/))==((void*)(NULL))){
  757. R=r7_px_60((T7*)((/*RF2*/(((T61*)_bcn1))->_to_string/*8*/)),(/*RF2*/(((T61*)_bcn2))->_to_string/*8*/));
  758. }
  759. else{
  760. R=1;
  761. }
  762. /*FI]*/
  763. }
  764.  else if(((/*RF2*/(((T51*)_bc2))->_parent_list/*34*/))==((void*)(NULL))){
  765. }
  766. else{
  767. R=(/*(IRF4.6count*/(/*RF2*/(((T59*)((/*RF2*/((T57*)((/*RF2*/(((T51*)_bc2))->_parent_list/*34*/)))->_list/*16*/))))->_upper/*8*/)/*)*/)<(/*(IRF4.6count*/(/*RF2*/(((T59*)((/*RF2*/((T57*)((/*RF2*/(((T51*)_bc1))->_parent_list/*34*/)))->_list/*16*/))))->_upper/*8*/)/*)*/);
  768. }
  769. /*FI]*/
  770. return R;
  771. }
  772.  
  773.  
  774. void r50deep_twin_in(T50* C,T0* a1){
  775. T0* _name=NULL;
  776. T0* _t=NULL;
  777. T0* _rf2=NULL;
  778. T0* _wa=NULL;
  779. T2 _i=0;
  780. /*[IF*/
  781. if(X52is_reference((/*RF2*/(C)->_current_type/*0*/))){
  782. r7append(((T7*)a1),((T0*)ms50_44832));
  783. X52c_type_for_target_in((/*RF2*/(C)->_current_type/*0*/),a1);
  784. r7extend(((T7*)a1),((T3)'\40'));
  785. r344basic_allocation((T344*)(oBC13gc_handler),((T0*)ms50_990),a1,(T0*)C);
  786. r7append(((T7*)a1),((T0*)ms50_65459));
  787. }
  788. else{
  789. r7append(((T7*)a1),((T0*)ms50_118291));
  790. X52c_type_for_target_in((/*RF2*/(C)->_current_type/*0*/),a1);
  791. r7append(((T7*)a1),((T0*)ms50_5863));
  792. }
  793. /*FI]*/
  794. _wa=r50writable_attributes(C);
  795. /*[IF*/
  796. if((_wa)!=((void*)(NULL))){
  797. _i=(/*RF2*/(((T346*)_wa))->_upper/*12*/);
  798. while (!((_i)==(0)))
  799. {
  800. _rf2=r346item(((T346*)_wa),_i);
  801. _name=X82to_string((/*RF2*/(((T345*)_rf2))->_name/*12*/));
  802. _t=X52run_type((/*RF2*/(((T345*)_rf2))->_result_type/*28*/));
  803. /*[IF*/
  804. if(X52is_reference(_t)){
  805. r7append(((T7*)a1),((T0*)ms50_11817));
  806. r7append(((T7*)a1),_name);
  807. r7append(((T7*)a1),((T0*)ms50_26370));
  808. r7append(((T7*)a1),_name);
  809. r7append(((T7*)a1),((T0*)ms50_12684));
  810. /*[IF*/
  811. if(r47no_check((T47*)(oBC13run_control))){
  812. r7append(((T7*)a1),((T0*)ms50_7137));
  813. }
  814. /*FI]*/
  815. r7append(((T7*)a1),((T0*)ms50_6042));
  816. r7append(((T7*)a1),_name);
  817. r7append(((T7*)a1),((T0*)ms50_1225));
  818. }
  819.  else if(X52is_native_array(_t)){
  820. /*[IF*/
  821. if((r50get_feature_with(C,((T0*)ms15_11776)))==((void*)(NULL))){
  822. r66add_type(_t,((T0*)ms14_4684050));
  823. r66print_as_error((T66*)(oBC13eh));
  824. {T68 se_tmp0;
  825. r66add_position(/*(IRF4.6start_position*/(*(se_tmp0=r315start_position(((T315*)((/*RF2*/(((T345*)_rf2))->_base_feature/*24*/)))),&se_tmp0))/*)*/);
  826. }
  827. /*[IRF3.6append*/{T0* b1=((T0*)ms50_227898);
  828. r7append((T7*)(oBC66explanation),b1);
  829. }/*]*/
  830. r66print_as_fatal_error((T66*)(oBC13eh));
  831. }
  832. /*FI]*/
  833. r7append(((T7*)a1),((T0*)ms50_6042aa));
  834. r7append(((T7*)a1),_name);
  835. r7append(((T7*)a1),((T0*)ms50_350));
  836. r2append_in(X52id(_t),a1);
  837. r7append(((T7*)a1),((T0*)ms50_16635));
  838. /*[IF*/
  839. if(r47no_check((T47*)(oBC13run_control))){
  840. r7append(((T7*)a1),((T0*)ms50_1188));
  841. }
  842. /*FI]*/
  843. r7append(((T7*)a1),((T0*)ms50_6042a));
  844. r7append(((T7*)a1),_name);
  845. r7append(((T7*)a1),((T0*)ms50_10782));
  846. }
  847.  else if(X52is_user_expanded(_t)){
  848. r7append(((T7*)a1),((T0*)ms50_6042aaa));
  849. r7append(((T7*)a1),_name);
  850. r7append(((T7*)a1),((T0*)ms50_350a));
  851. r2append_in(X52id(_t),a1);
  852. r7append(((T7*)a1),((T0*)ms50_9090));
  853. /*[IF*/
  854. if(r47no_check((T47*)(oBC13run_control))){
  855. r7append(((T7*)a1),((T0*)ms50_1188a));
  856. }
  857. /*FI]*/
  858. r7append(((T7*)a1),((T0*)ms50_9344));
  859. r7append(((T7*)a1),_name);
  860. r7append(((T7*)a1),((T0*)ms50_604));
  861. }
  862. /*FI]*/
  863. _i=(_i)-(1);
  864. }
  865. }
  866. /*FI]*/
  867. /*[IF*/
  868. if(X52is_user_expanded((/*RF2*/(C)->_current_type/*0*/))){
  869. r7append(((T7*)a1),((T0*)ms50_20072));
  870. }
  871. /*FI]*/
  872. r7extend(((T7*)a1),((T3)'\175'));
  873. r7extend(((T7*)a1),((T3)'\n'));
  874. }
  875.  
  876.  
  877. T2 r50c_sizeof(T50* C){
  878. T2 R=0;
  879. T2 _i=0;
  880. T0* _a=NULL;
  881. T0* _wa=NULL;
  882. /*[IF*/
  883. if(r50is_tagged(C)){
  884. R=sizeof(T2);
  885. }
  886. /*FI]*/
  887. _wa=r50writable_attributes(C);
  888. /*[IF*/
  889. if((_wa)!=((void*)(NULL))){
  890. _i=(/*RF2*/(((T346*)_wa))->_upper/*12*/);
  891. while (!((_i)==(0)))
  892. {
  893. _a=r346item(((T346*)_wa),_i);
  894. R=(R)+(X52c_sizeof((/*RF2*/(((T345*)_a))->_result_type/*28*/)));
  895. _i=(_i)-(1);
  896. }
  897. }
  898. /*FI]*/
  899. /*[IF*/
  900. if((R)==(0)){
  901. R=1;
  902. }
  903. /*FI]*/
  904. return R;
  905. }
  906.  
  907.  
  908. void r50really_compile_to_c(T50* C){
  909. T0* _rf=NULL;
  910. T2 _i=0;
  911. (/*SFN*/C->_compile_to_c_done)=1;
  912. r35put_character((T35*)(oBC13echo),((T3)'\11'));
  913. r35put_string((T35*)(oBC13echo),X52run_time_mark((/*RF2*/(C)->_current_type/*0*/)));
  914. r35put_character((T35*)(oBC13echo),((T3)'\n'));
  915. _i=1;
  916. while (!((_i)>((/*RF2*/((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)))->_count/*36*/))))
  917. {
  918. _rf=r348item((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_i);
  919. X334c_define(_rf);
  920. _i=(_i)+(1);
  921. /*[IF*/
  922. if(((_i)%(30))==(0)){
  923. r325padding_here((T325*)(oBC13cpp));
  924. }
  925. /*FI]*/
  926. }
  927. /*[IF*/
  928. if(r47invariant_check((T47*)(oBC13run_control))){
  929. /*[IF*/
  930. if(((/*RF2*/(C)->_class_invariant/*13*/))!=((void*)(NULL))){
  931. r102c_define((T102*)((/*RF2*/(C)->_class_invariant/*13*/)));
  932. }
  933. /*FI]*/
  934. }
  935. /*FI]*/
  936. /*[IF*/
  937. if(((/*RF2*/((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)))->_count/*36*/))>(20)){
  938. r325padding_here((T325*)(oBC13cpp));
  939. }
  940. /*FI]*/
  941. }
  942.  
  943.  
  944. void r50c_print_function(T50* C){
  945. T0* _rf2=NULL;
  946. T0* _wa=NULL;
  947. T2 _i=0;
  948. T0* _t=NULL;
  949. T0* _ct=NULL;
  950. T0* _body=NULL;
  951. _body=((T0*)ms50_17064);
  952. _ct=(/*RF2*/(C)->_current_type/*0*/);
  953. r7copy((T7*)(oBC50tmp_string),((T0*)ms50_20254));
  954. r2append_in((/*RF2*/(C)->_id/*4*/),oBC50tmp_string);
  955. r7append((T7*)(oBC50tmp_string),((T0*)ms50_248));
  956. r2append_in((/*RF2*/(C)->_id/*4*/),oBC50tmp_string);
  957. /*[IF*/
  958. if(X52is_reference(_ct)){
  959. r7extend((T7*)(oBC50tmp_string),((T3)'\52'));
  960. }
  961. /*FI]*/
  962. r7append((T7*)(oBC50tmp_string),((T0*)ms50_582));
  963. /*[IRF3.3clear*/((((T7*)(((T7*)_body))))->_count)=(0);
  964. /*]*/
  965. /*[IF*/
  966. if(X52is_reference(_ct)){
  967. r7append(((T7*)_body),((T0*)ms50_42240));
  968. }
  969. /*FI]*/
  970. r7append(((T7*)_body),((T0*)ms50_17392a));
  971. r7append(((T7*)_body),X52run_time_mark(_ct));
  972. r7append(((T7*)_body),((T0*)ms50_576));
  973. /*[IF*/
  974. if((X52is_reference(_ct))||(X52is_native_array(_ct))){
  975. r7append(((T7*)_body),((T0*)ms50_20878aa));
  976. }
  977. /*FI]*/
  978. _wa=r50writable_attributes(C);
  979. /*[IF*/
  980. if((_wa)!=((void*)(NULL))){
  981. r7append(((T7*)_body),((T0*)ms50_20878a));
  982. _i=(/*RF2*/(((T346*)_wa))->_upper/*12*/);
  983. while (!((_i)==(0)))
  984. {
  985. _rf2=r346item(((T346*)_wa),_i);
  986. _t=(/*RF2*/(((T345*)_rf2))->_result_type/*28*/);
  987. r7append(((T7*)_body),((T0*)ms50_17392));
  988. r7append(((T7*)_body),X82to_string((/*RF2*/(((T345*)_rf2))->_name/*12*/)));
  989. r7append(((T7*)_body),((T0*)ms50_21900));
  990. /*[IF*/
  991. if(X52is_expanded(_t)){
  992. r2append_in(X52id(_t),_body);
  993. }
  994.  else if(X52is_string(_t)){
  995. r7extend(((T7*)_body),((T3)'7'));
  996. }
  997. else{
  998. r7extend(((T7*)_body),((T3)'0'));
  999. }
  1000. /*FI]*/
  1001. r7append(((T7*)_body),((T0*)ms50_15435));
  1002. /*[IF*/
  1003. if(X52is_reference(_ct)){
  1004. r7append(((T7*)_body),((T0*)ms50_214));
  1005. }
  1006. else{
  1007. r7extend(((T7*)_body),((T3)'\56'));
  1008. }
  1009. /*FI]*/
  1010. r7extend(((T7*)_body),((T3)'\137'));
  1011. r7append(((T7*)_body),X82to_string((/*RF2*/(((T345*)_rf2))->_name/*12*/)));
  1012. r7append(((T7*)_body),((T0*)ms50_960));
  1013. _i=(_i)-(1);
  1014. /*[IF*/
  1015. if((_i)>(0)){
  1016. r7append(((T7*)_body),((T0*)ms50_20878));
  1017. }
  1018. /*FI]*/
  1019. }
  1020. r7append(((T7*)_body),((T0*)ms50_19825));
  1021. }
  1022. /*FI]*/
  1023. r325put_c_function((T325*)(oBC13cpp),oBC50tmp_string,_body);
  1024. }
  1025.  
  1026.  
  1027. void r50error(T68 a1,T0* a2){
  1028. r66add_position(a1);
  1029. /*[IRF3.6append*/{T0* b1=a2;
  1030. r7append((T7*)(oBC66explanation),b1);
  1031. }/*]*/
  1032. r66print_as_error((T66*)(oBC13eh));
  1033. }
  1034.  
  1035.  
  1036. void r50runnable_class_invariant(T50* C){
  1037. /*[IF*/
  1038. if(!((/*RF2*/(C)->_runnable_class_invariant_done/*34*/))){
  1039. (/*SFN*/C->_runnable_class_invariant_done)=1;
  1040. /*[IF*/
  1041. if(r47invariant_check((T47*)(oBC13run_control))){
  1042. /*[IF*/
  1043. if(((/*RF2*/(C)->_at_run_time/*8*/))||((/*RF2*/((T49*)(oBC13small_eiffel))->_short_flag/*5*/))){
  1044. r383invariant_start((T383*)(oBC13assertion_collector));
  1045. r51collect_invariant((T51*)(r50base_class(C)),(T0*)C);
  1046. (/*SFN*/C->_class_invariant)=r383invariant_end((T383*)(oBC13assertion_collector),(/*RF2*/(C)->_current_type/*0*/));
  1047. }
  1048. /*FI]*/
  1049. }
  1050. /*FI]*/
  1051. }
  1052. /*FI]*/
  1053. }
  1054.  
  1055.  
  1056. void r50demangling(T50* C){
  1057. T2 _i=0;
  1058. T0* _r=NULL;
  1059. T0* _str=NULL;
  1060. _str=((T0*)ms50_146556);
  1061. /*[IRF3.3clear*/((((T7*)(((T7*)_str))))->_count)=(0);
  1062. /*]*/
  1063. /*[IF*/
  1064. if((/*RF2*/(C)->_at_run_time/*8*/)){
  1065. r7extend(((T7*)_str),((T3)'A'));
  1066. /*[IF*/
  1067. if((X52is_reference((/*RF2*/(C)->_current_type/*0*/)))&&(!(r50is_tagged(C)))){
  1068. r7extend(((T7*)_str),((T3)'\52'));
  1069. }
  1070. else{
  1071. r7extend(((T7*)_str),((T3)'\40'));
  1072. }
  1073. /*FI]*/
  1074. }
  1075. else{
  1076. r7extend(((T7*)_str),((T3)'D'));
  1077. r7extend(((T7*)_str),((T3)'\40'));
  1078. }
  1079. /*FI]*/
  1080. _r=(/*RF2*/(C)->_running/*9*/);
  1081. /*[IF*/
  1082. if((_r)!=((void*)(NULL))){
  1083. r2append_in(r53count(((T53*)_r)),_str);
  1084. }
  1085. /*FI]*/
  1086. while (!(((/*RF2*/(((T7*)_str))->_count/*4*/))>(4)))
  1087. {
  1088. r7extend(((T7*)_str),((T3)'\40'));
  1089. }
  1090. r7extend(((T7*)_str),((T3)'T'));
  1091. r2append_in((/*RF2*/(C)->_id/*4*/),_str);
  1092. while (!(((/*RF2*/(((T7*)_str))->_count/*4*/))>(10)))
  1093. {
  1094. r7extend(((T7*)_str),((T3)'\40'));
  1095. }
  1096. X52demangling_in((/*RF2*/(C)->_current_type/*0*/),_str);
  1097. /*[IF*/
  1098. if((_r)!=((void*)(NULL))){
  1099. r7extend(((T7*)_str),((T3)'\40'));
  1100. _i=(/*RF2*/(((T53*)_r))->_upper/*8*/);
  1101. while (!((_i)==(0)))
  1102. {
  1103. r2append_in((/*RF2*/((T50*)(r53item(((T53*)_r),_i)))->_id/*4*/),_str);
  1104. _i=(_i)-(1);
  1105. /*[IF*/
  1106. if((_i)>(0)){
  1107. r7extend(((T7*)_str),((T3)'\54'));
  1108. }
  1109. /*FI]*/
  1110. }
  1111. }
  1112. /*FI]*/
  1113. r7extend(((T7*)_str),((T3)'\n'));
  1114. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),_str);
  1115. /*]*/
  1116. }
  1117.  
  1118.  
  1119. void r50store_feature(T50* C,T0* a1){
  1120. T0* _rf_key=NULL;
  1121. _rf_key=X82to_key(/*SSWARF2*//*X334name*/(/*RF2*/(((T368*)a1))->_name/*12*/));
  1122. /*[IF*/
  1123. if(r348has((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_rf_key)){
  1124. }
  1125. else{
  1126. r348put((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),a1,_rf_key);
  1127. r49incr_magic_count((T49*)(oBC13small_eiffel));
  1128. }
  1129. /*FI]*/
  1130. }
  1131.  
  1132.  
  1133. void r50make(T50* C,T0* a1){
  1134. T2 _i=0;
  1135. T0* _rc=NULL;
  1136. T0* _rcd=NULL;
  1137. T0* _run_string=NULL;
  1138. (/*SFN*/C->_compile_to_c_done)=1;
  1139. (/*SFN*/C->_current_type)=a1;
  1140. {T56*n=((T56*)malloc(sizeof(*n))/*12*/);
  1141. *n=M56;
  1142. r56with_capacity(n,16);
  1143. (/*SFN*/C->_actuals_clients)=((T0*)n);
  1144. }
  1145. _run_string=X52run_time_mark(a1);
  1146. (/*SFN*/C->_id)=r39item((T39*)(r50id_provider()),_run_string);
  1147. r55put((T55*)(oBC49run_class_dictionary),(T0*)C,_run_string);
  1148. {T348*n=((T348*)malloc(sizeof(*n))/*40*/);
  1149. *n=M348;
  1150. /*[IRF3.4make*/r348with_capacity(n,32);
  1151. /*]*/
  1152. (/*SFN*/C->_feature_dictionary)=((T0*)n);
  1153. }
  1154. r49incr_magic_count((T49*)(oBC13small_eiffel));
  1155. /*[IF*/
  1156. if(X52is_expanded(a1)){
  1157. r50set_at_run_time(C);
  1158. r51check_expanded_with((T51*)(X52base_class(a1)),a1);
  1159. }
  1160. else{
  1161. _rcd=oBC49run_class_dictionary;
  1162. _i=1;
  1163. while (!((_i)>((/*RF2*/(((T55*)_rcd))->_count/*36*/))))
  1164. {
  1165. _rc=r55item(((T55*)_rcd),_i);
  1166. /*[IF*/
  1167. if((((/*RF2*/(((T50*)_rc))->_at_run_time/*8*/))&&(X52is_reference((/*RF2*/(((T50*)_rc))->_current_type/*0*/))))&&(r50is_running_of(((T50*)_rc),(T0*)C))){
  1168. r50add_running(C,_rc);
  1169. }
  1170. /*FI]*/
  1171. _i=(_i)+(1);
  1172. }
  1173. }
  1174. /*FI]*/
  1175. }
  1176.  
  1177.  
  1178. void r50c_object_model_in(T50* C,T0* a1){
  1179. T0* _t=NULL;
  1180. T0* _rf2=NULL;
  1181. T2 _i=0;
  1182. T0* _wa=NULL;
  1183. _wa=r50writable_attributes(C);
  1184. /*[IF*/
  1185. if((_wa)==((void*)(NULL))){
  1186. /*[IF*/
  1187. if(r50is_tagged(C)){
  1188. r7extend(((T7*)a1),((T3)'\173'));
  1189. r2append_in((/*RF2*/(C)->_id/*4*/),a1);
  1190. r7extend(((T7*)a1),((T3)'\175'));
  1191. }
  1192. else{
  1193. X52c_initialize_in((/*RF2*/(C)->_current_type/*0*/),a1);
  1194. }
  1195. /*FI]*/
  1196. }
  1197. else{
  1198. r7extend(((T7*)a1),((T3)'\173'));
  1199. /*[IF*/
  1200. if(r50is_tagged(C)){
  1201. r2append_in((/*RF2*/(C)->_id/*4*/),a1);
  1202. r7extend(((T7*)a1),((T3)'\54'));
  1203. }
  1204. /*FI]*/
  1205. _i=(/*RF2*/(((T346*)_wa))->_upper/*12*/);
  1206. while (!((_i)==(0)))
  1207. {
  1208. _rf2=r346item(((T346*)_wa),_i);
  1209. _t=(/*RF2*/(((T345*)_rf2))->_result_type/*28*/);
  1210. X52c_initialize_in(_t,a1);
  1211. _i=(_i)-(1);
  1212. /*[IF*/
  1213. if((_i)>(0)){
  1214. r7extend(((T7*)a1),((T3)'\54'));
  1215. }
  1216. /*FI]*/
  1217. }
  1218. r7extend(((T7*)a1),((T3)'\175'));
  1219. }
  1220. /*FI]*/
  1221. }
  1222.  
  1223.  
  1224. void r50efnf(T50* C,T0* a1,T0* a2){
  1225. /*[IRF3.6append*/{T0* b1=((T0*)ms50_16400);
  1226. r7append((T7*)(oBC66explanation),b1);
  1227. }/*]*/
  1228. /*[IRF3.6append*/{T0* b1=X52run_time_mark((/*RF2*/(C)->_current_type/*0*/));
  1229. r7append((T7*)(oBC66explanation),b1);
  1230. }/*]*/
  1231. /*[IRF3.6append*/{T0* b1=((T0*)ms50_23562);
  1232. r7append((T7*)(oBC66explanation),b1);
  1233. }/*]*/
  1234. /*[IRF3.6append*/{T0* b1=X82to_string(a2);
  1235. r7append((T7*)(oBC66explanation),b1);
  1236. }/*]*/
  1237. /*[IRF3.6append*/{T0* b1=((T0*)ms50_6980);
  1238. r7append((T7*)(oBC66explanation),b1);
  1239. }/*]*/
  1240. /*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(((T51*)a1))->_name/*18*/)))->_to_string/*8*/);
  1241. r7append((T7*)(oBC66explanation),b1);
  1242. }/*]*/
  1243. {T68 se_tmp0;
  1244. r50error((*(se_tmp0=X82start_position(a2),&se_tmp0)),((T0*)ms14_46));
  1245. }
  1246. }
  1247.  
  1248.  
  1249. T0* r50get_default_rescue(T50* C,T0* a1){
  1250. T0* R=NULL;
  1251. T0* _call_to_default_rescue=NULL;
  1252. T0* _target=NULL;
  1253. T0* _a_rescue=NULL;
  1254. _a_rescue=r51get_default_rescue((T51*)(r50base_class(C)),(T0*)C,a1);
  1255. /*[IF*/
  1256. if((_a_rescue)!=((void*)(NULL))){
  1257. {T68 se_tmp0;
  1258. {T184*n=((T184*)malloc(sizeof(*n))/*16*/);
  1259. *n=M184;
  1260. /*[IRF3.3make*/((((T184*)(n)))->_start_position)=((*(se_tmp0=X82start_position(a1),&se_tmp0)));
  1261. /*]*/
  1262. _target=((T0*)n);
  1263. }
  1264. }
  1265. {T153*n=((T153*)malloc(sizeof(*n))/*16*/);
  1266. *n=M153;
  1267. r153make(n,_target,(/*RF2*/(((T368*)_a_rescue))->_name/*12*/));
  1268. _call_to_default_rescue=((T0*)n);
  1269. }
  1270. {T215*n=((T215*)malloc(sizeof(*n))/*16*/);
  1271. *n=M215;
  1272. r215make(n,NULL,_call_to_default_rescue,NULL);
  1273. R=((T0*)n);
  1274. }
  1275. }
  1276. /*FI]*/
  1277. return R;
  1278. }
  1279.  
  1280.  
  1281. T0* r50writable_attributes(T50* C){
  1282. T0* R=NULL;
  1283. T2 _i=0;
  1284. T0* _rf2=NULL;
  1285. /*[IF*/
  1286. if(((/*RF2*/(C)->_writable_attributes_mem/*30*/))==((void*)(NULL))){
  1287. _i=1;
  1288. while (!((_i)>((/*RF2*/((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)))->_count/*36*/))))
  1289. {
  1290. _rf2=r348item((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_i);
  1291. if(NULL!=(_rf2)){
  1292. switch(((T0*)_rf2)->id){
  1293. case 345:
  1294. break;
  1295. default:
  1296. _rf2=NULL;
  1297. }
  1298. }/*[IF*/
  1299. if((_rf2)!=((void*)(NULL))){
  1300. /*[IF*/
  1301. if(((/*RF2*/(C)->_writable_attributes_mem/*30*/))==((void*)(NULL))){
  1302. {T346*n=((T346*)malloc(sizeof(*n))/*20*/);
  1303. *n=M346;
  1304. r346with_capacity(n,4,1);
  1305. (/*SFN*/C->_writable_attributes_mem)=((T0*)n);
  1306. }
  1307. }
  1308. /*FI]*/
  1309. r346add_last((T346*)((/*RF2*/(C)->_writable_attributes_mem/*30*/)),_rf2);
  1310. }
  1311. /*FI]*/
  1312. _i=(_i)+(1);
  1313. }
  1314. /*[IF*/
  1315. if(((/*RF2*/(C)->_writable_attributes_mem/*30*/))!=((void*)(NULL))){
  1316. r50sort_wam((/*RF2*/(C)->_writable_attributes_mem/*30*/));
  1317. }
  1318. /*FI]*/
  1319. }
  1320. /*FI]*/
  1321. R=(/*RF2*/(C)->_writable_attributes_mem/*30*/);
  1322. return R;
  1323. }
  1324.  
  1325.  
  1326. T6 r50is_running_of(T50* C,T0* a1){
  1327. T6 R=0;
  1328. T0* _t2=NULL;
  1329. T0* _t1=NULL;
  1330. /*[IF*/
  1331. if((a1)==((void*)(C))){
  1332. R=1;
  1333. }
  1334. else{
  1335. _t1=(/*RF2*/(C)->_current_type/*0*/);
  1336. _t2=(/*RF2*/(((T50*)a1))->_current_type/*0*/);
  1337. /*[IF*/
  1338. if((X52is_basic_eiffel_expanded(_t1))&&(X52is_basic_eiffel_expanded(_t2))){
  1339. }
  1340. else{
  1341. R=X52is_a(_t1,_t2);
  1342. /*[IF*/
  1343. if(!(R)){
  1344. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC66explanation))))->_count)=(0);
  1345. /*]*/
  1346. /*[IRF3.3clear*/((((T67*)((T67*)(oBC66positions))))->_upper)=(-(1));
  1347. /*]*/
  1348. /*]*/
  1349. }
  1350. /*FI]*/
  1351. }
  1352. /*FI]*/
  1353. }
  1354. /*FI]*/
  1355. return R;
  1356. }
  1357.  
  1358.  
  1359. void r50gc_set_fsoh_marked_in(T50* C,T0* a1){
  1360. /*[IF*/
  1361. if(X52is_reference((/*RF2*/(C)->_current_type/*0*/))){
  1362. r7append(((T7*)a1),((T0*)ms50_1128));
  1363. r2append_in((/*RF2*/(C)->_id/*4*/),a1);
  1364. r7append(((T7*)a1),((T0*)ms50_18290));
  1365. }
  1366. /*FI]*/
  1367. }
  1368.  
  1369.  
  1370. T0* r50dynamic(T50* C,T0* a1){
  1371. T0* R=NULL;
  1372. T0* _up_type=NULL;
  1373. T0* _up_fn=NULL;
  1374. T0* _fn=NULL;
  1375. _up_type=/*SSWARF2*//*X334current_type*/(/*RF2*/(((T368*)a1))->_current_type/*8*/);
  1376. /*[IF*/
  1377. if((C)==((void*)(X52run_class(_up_type)))){
  1378. R=a1;
  1379. }
  1380. else{
  1381. _up_fn=/*SSWARF2*//*X334name*/(/*RF2*/(((T368*)a1))->_name/*12*/);
  1382. _fn=r51new_name_of((T51*)(r50base_class(C)),X52base_class(_up_type),_up_fn);
  1383. R=r50get_or_fatal_error(C,_fn);
  1384. }
  1385. /*FI]*/
  1386. return R;
  1387. }
  1388.  
  1389.  
  1390. void r50add_rf(T50* C,T0* a1,T0* a2){
  1391. r348put((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),a1,a2);
  1392. }
  1393.  
  1394.  
  1395. T6 r50is_tagged(T50* C){
  1396. T6 R=0;
  1397. /*[IF*/
  1398. if(((/*RF2*/(C)->_tagged_mem/*22*/))==(0)){
  1399. /*[IF*/
  1400. if(X52is_expanded((/*RF2*/(C)->_current_type/*0*/))){
  1401. (/*SFN*/C->_tagged_mem)=-(1);
  1402. }
  1403.  else if((/*RF2*/(C)->_at_run_time/*8*/)){
  1404. /*[IF*/
  1405. if(r47boost((T47*)(oBC13run_control))){
  1406. /*[IF*/
  1407. if(r49is_tagged((T0*)C)){
  1408. (/*SFN*/C->_tagged_mem)=1;
  1409. }
  1410. else{
  1411. (/*SFN*/C->_tagged_mem)=-(1);
  1412. }
  1413. /*FI]*/
  1414. }
  1415. else{
  1416. (/*SFN*/C->_tagged_mem)=1;
  1417. }
  1418. /*FI]*/
  1419. }
  1420. /*FI]*/
  1421. }
  1422. /*FI]*/
  1423. R=((/*RF2*/(C)->_tagged_mem/*22*/))==(1);
  1424. return R;
  1425. }
  1426.  
  1427.  
  1428. void r50falling_down(T50* C){
  1429. T2 _i=0;
  1430. T0* _rf=NULL;
  1431. _i=1;
  1432. while (!((_i)>((/*RF2*/((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)))->_count/*36*/))))
  1433. {
  1434. _rf=r348item((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_i);
  1435. X334fall_down(_rf);
  1436. _i=(_i)+(1);
  1437. }
  1438. r344falling_down((T344*)(oBC13gc_handler),(T0*)C);
  1439. r50runnable_class_invariant(C);
  1440. /*[IF*/
  1441. if((/*RF2*/((T47*)(oBC13run_control))->_deep_twin_used/*11*/)){
  1442. /*[IF*/
  1443. if(X52is_native_array((/*RF2*/(C)->_current_type/*0*/))){
  1444. _rf=r50get_feature_with(C,((T0*)ms15_28490));
  1445. }
  1446. else{
  1447. _rf=r50get_feature_with(C,((T0*)ms15_13491));
  1448. }
  1449. /*FI]*/
  1450. }
  1451. /*FI]*/
  1452. /*[IF*/
  1453. if((/*RF2*/((T47*)(oBC13run_control))->_is_deep_equal_used/*12*/)){
  1454. /*[IF*/
  1455. if(X52is_native_array((/*RF2*/(C)->_current_type/*0*/))){
  1456. _rf=r50get_feature_with(C,((T0*)ms15_19151));
  1457. }
  1458. else{
  1459. _rf=r50get_feature_with(C,((T0*)ms15_15890));
  1460. _rf=r50get_feature_with(C,((T0*)ms15_24960));
  1461. }
  1462. /*FI]*/
  1463. }
  1464. /*FI]*/
  1465. }
  1466.  
  1467.  
  1468. void r50mark_attribute(T50* C,T0* a1,T0* a2){
  1469. r7copy((T7*)(oBC50tmp_string),((T0*)ms50_1252));
  1470. r7append((T7*)(oBC50tmp_string),X82to_string((/*RF2*/(((T345*)a2))->_name/*12*/)));
  1471. r7append((T7*)(oBC50tmp_string),((T0*)ms14_178a));
  1472. r2append_in(r50offset_of(C,a2),oBC50tmp_string);
  1473. r7append((T7*)(oBC50tmp_string),((T0*)ms14_178));
  1474. r344mark_for(a1,oBC50tmp_string,X52run_class((/*RF2*/(((T345*)a2))->_result_type/*28*/)));
  1475. }
  1476.  
  1477.  
  1478. void r50c_header_pass2(T50* C){
  1479. /*[IF*/
  1480. if((/*RF2*/(C)->_at_run_time/*8*/)){
  1481. /*[IF*/
  1482. if(((/*RF2*/(C)->_c_header_pass_level_done/*35*/))<(2)){
  1483. X52c_header_pass2((/*RF2*/(C)->_current_type/*0*/));
  1484. (/*SFN*/C->_c_header_pass_level_done)=2;
  1485. }
  1486. /*FI]*/
  1487. }
  1488. /*FI]*/
  1489. }
  1490. T0*oBC13class_general=NULL;
  1491. int fBC13class_general=0;
  1492.  
  1493.  
  1494. T0* r50class_general(void){
  1495. if(fBC13class_general==0){fBC13class_general=1;{
  1496. oBC13class_general=r49get_class(((T0*)ms15_6307));
  1497. }}
  1498. return oBC13class_general;
  1499. }
  1500.  
  1501.  
  1502. void r50c_header_pass4(T50* C){
  1503. /*[IF*/
  1504. if((/*RF2*/(C)->_at_run_time/*8*/)){
  1505. /*[IF*/
  1506. if(((/*RF2*/(C)->_c_header_pass_level_done/*35*/))<(4)){
  1507. X52c_header_pass4((/*RF2*/(C)->_current_type/*0*/));
  1508. (/*SFN*/C->_c_header_pass_level_done)=4;
  1509. }
  1510. /*FI]*/
  1511. }
  1512. /*FI]*/
  1513. }
  1514.  
  1515.  
  1516. T0* r50get_feature(T50* C,T0* a1){
  1517. T0* R=NULL;
  1518. T0* _bc=NULL;
  1519. T0* _fn_key=NULL;
  1520. T0* _f=NULL;
  1521. _fn_key=X82to_key(a1);
  1522. /*[IF*/
  1523. if(r348has((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_fn_key)){
  1524. R=r348at((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_fn_key);
  1525. }
  1526. else{
  1527. _bc=r50base_class(C);
  1528. _f=r51look_up_for(((T51*)_bc),(T0*)C,a1);
  1529. /*[IF*/
  1530. if((_f)==((void*)(NULL))){
  1531. r50efnf(C,_bc,a1);
  1532. }
  1533. else{
  1534. R=X90to_run_feature(_f,(/*RF2*/(C)->_current_type/*0*/),a1);
  1535. /*[IF*/
  1536. if((R)!=((void*)(NULL))){
  1537. r50store_feature(C,R);
  1538. }
  1539. else{
  1540. r50efnf(C,_bc,a1);
  1541. }
  1542. /*FI]*/
  1543. }
  1544. /*FI]*/
  1545. }
  1546. /*FI]*/
  1547. return R;
  1548. }
  1549.  
  1550.  
  1551. void r50sort_wam(T0* a1){
  1552. T6 _moved=0;
  1553. T2 _buble=0;
  1554. T2 _max=0;
  1555. T2 _min=0;
  1556. _max=(/*RF2*/(((T346*)a1))->_upper/*12*/);
  1557. _min=1;
  1558. _moved=1;
  1559. while (!(!(_moved)))
  1560. {
  1561. _moved=0;
  1562. /*[IF*/
  1563. if(((_max)-(_min))>(0)){
  1564. _buble=(_min)+(1);
  1565. while (!((_buble)>(_max)))
  1566. {
  1567. /*[IF*/
  1568. if(r50gt(r346item(((T346*)a1),(_buble)-(1)),r346item(((T346*)a1),_buble))){
  1569. r346swap(((T346*)a1),(_buble)-(1),_buble);
  1570. _moved=1;
  1571. }
  1572. /*FI]*/
  1573. _buble=(_buble)+(1);
  1574. }
  1575. _max=(_max)-(1);
  1576. }
  1577. /*FI]*/
  1578. /*[IF*/
  1579. if((_moved)&&(((_max)-(_min))>(0))){
  1580. _moved=0;
  1581. _buble=(_max)-(1);
  1582. while (!((_buble)<(_min)))
  1583. {
  1584. /*[IF*/
  1585. if(r50gt(r346item(((T346*)a1),_buble),r346item(((T346*)a1),(_buble)+(1)))){
  1586. r346swap(((T346*)a1),_buble,(_buble)+(1));
  1587. _moved=1;
  1588. }
  1589. /*FI]*/
  1590. _buble=(_buble)-(1);
  1591. }
  1592. _min=(_min)+(1);
  1593. }
  1594. /*FI]*/
  1595. }
  1596. }
  1597.  
  1598.  
  1599. void r50set_at_run_time(T50* C){
  1600. T2 _i=0;
  1601. T0* _rc=NULL;
  1602. T0* _rcd=NULL;
  1603. /*[IF*/
  1604. if(!((/*RF2*/(C)->_at_run_time/*8*/))){
  1605. (/*SFN*/C->_at_run_time)=1;
  1606. (/*SFN*/C->_compile_to_c_done)=0;
  1607. r50add_running(C,(T0*)C);
  1608. r49incr_magic_count((T49*)(oBC13small_eiffel));
  1609. /*[IF*/
  1610. if(X52is_reference((/*RF2*/(C)->_current_type/*0*/))){
  1611. _rcd=oBC49run_class_dictionary;
  1612. _i=1;
  1613. while (!((_i)>((/*RF2*/(((T55*)_rcd))->_count/*36*/))))
  1614. {
  1615. _rc=r55item(((T55*)_rcd),_i);
  1616. /*[IF*/
  1617. if(r50is_running_of(C,_rc)){
  1618. r50add_running(((T50*)_rc),(T0*)C);
  1619. }
  1620. /*FI]*/
  1621. _i=(_i)+(1);
  1622. }
  1623. }
  1624. /*FI]*/
  1625. }
  1626. /*FI]*/
  1627. }
  1628.  
  1629.  
  1630. void r50id_extra_information(T50* C,T0* a1){
  1631. T0* _ct=NULL;
  1632. T2 _i=0;
  1633. T0* _r=NULL;
  1634. _ct=(/*RF2*/(C)->_current_type/*0*/);
  1635. r48put_string(((T48*)a1),((T0*)ms50_11241));
  1636. r48put_integer(((T48*)a1),(/*RF2*/(C)->_id/*4*/));
  1637. /*[IRF3.6put_character*/{T48* C1=((T48*)a1);
  1638. T3 b1=((T3)'\40');
  1639. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  1640. }/*]*/
  1641. X52id_extra_information(_ct,a1);
  1642. /*[IF*/
  1643. if(X52is_reference(_ct)){
  1644. r48put_string(((T48*)a1),((T0*)ms50_10332));
  1645. /*[IF*/
  1646. if((/*RF2*/(C)->_at_run_time/*8*/)){
  1647. r48put_string(((T48*)a1),((T0*)ms50_14160));
  1648. /*[IF*/
  1649. if((X52is_reference(_ct))&&(!(r50is_tagged(C)))){
  1650. r48put_string(((T48*)a1),((T0*)ms50_759));
  1651. }
  1652. else{
  1653. r48put_string(((T48*)a1),((T0*)ms50_1476));
  1654. }
  1655. /*FI]*/
  1656. }
  1657. else{
  1658. r48put_string(((T48*)a1),((T0*)ms50_2150));
  1659. }
  1660. /*FI]*/
  1661. r48put_string(((T48*)a1),((T0*)ms50_15540));
  1662. _r=(/*RF2*/(C)->_running/*9*/);
  1663. /*[IF*/
  1664. if((_r)!=((void*)(NULL))){
  1665. r48put_integer(((T48*)a1),r53count(((T53*)_r)));
  1666. }
  1667. else{
  1668. /*[IRF3.6put_character*/{T48* C1=((T48*)a1);
  1669. T3 b1=((T3)'0');
  1670. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  1671. }/*]*/
  1672. }
  1673. /*FI]*/
  1674. /*[IRF3.6put_character*/{T48* C1=((T48*)a1);
  1675. T3 b1=((T3)'\40');
  1676. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  1677. }/*]*/
  1678. /*[IF*/
  1679. if((_r)!=((void*)(NULL))){
  1680. r48put_string(((T48*)a1),((T0*)ms50_7596));
  1681. _i=(/*RF2*/(((T53*)_r))->_upper/*8*/);
  1682. while (!((_i)==(0)))
  1683. {
  1684. r48put_integer(((T48*)a1),(/*RF2*/((T50*)(r53item(((T53*)_r),_i)))->_id/*4*/));
  1685. /*[IRF3.6put_character*/{T48* C1=((T48*)a1);
  1686. T3 b1=((T3)'\40');
  1687. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  1688. }/*]*/
  1689. _i=(_i)-(1);
  1690. }
  1691. }
  1692. /*FI]*/
  1693. }
  1694. /*FI]*/
  1695. }
  1696.  
  1697.  
  1698. void r50gc_define1(T50* C){
  1699. /*[IF*/
  1700. if((/*RF2*/(C)->_at_run_time/*8*/)){
  1701. X52gc_define1((/*RF2*/(C)->_current_type/*0*/));
  1702. }
  1703. /*FI]*/
  1704. }
  1705. T0*oBC50wa_buf=NULL;
  1706.  
  1707.  
  1708. T0* r50get_memory_dispose(T50* C){
  1709. T0* R=NULL;
  1710. T0* _bc=NULL;
  1711. T0* _memory=NULL;
  1712. _memory=r49memory_class_used();
  1713. /*[IF*/
  1714. if((_memory)!=((void*)(NULL))){
  1715. _bc=r50base_class(C);
  1716. /*[IF*/
  1717. if(((_memory)!=((void*)(_bc)))&&(r51is_subclass_of(((T51*)_bc),_memory))){
  1718. /*[IF*/
  1719. if(r51has_simple_feature_name(((T51*)_bc),((T0*)ms15_8750))){
  1720. R=r50get_feature_with(C,((T0*)ms15_8750));
  1721. if(NULL!=(R)){
  1722. switch(((T0*)R)->id){
  1723. case 368:
  1724. break;
  1725. default:
  1726. R=NULL;
  1727. }
  1728. }/*[IF*/
  1729. if((R)!=((void*)(NULL))){
  1730. R=r368memory_dispose(((T368*)R));
  1731. }
  1732. /*FI]*/
  1733. }
  1734. /*FI]*/
  1735. }
  1736. /*FI]*/
  1737. }
  1738. /*FI]*/
  1739. return R;
  1740. }
  1741.  
  1742.  
  1743. void r50gc_mark_fixed_size(T50* C,T6 a1,T0* a2){
  1744. T2 _i=0;
  1745. T0* _rc=NULL;
  1746. T0* _t=NULL;
  1747. T0* _rf2=NULL;
  1748. /*[IRF3.3clear*/((((T391*)((T391*)(oBC50wa_buf))))->_upper)=(-(1));
  1749. /*]*/
  1750. /*[IRF3.3clear*/((((T391*)((T391*)(oBC50wa_cyclic_buf))))->_upper)=(-(1));
  1751. /*]*/
  1752. /*[IF*/
  1753. if((r50writable_attributes(C))!=((void*)(NULL))){
  1754. _i=(/*RF2*/((T346*)(r50writable_attributes(C)))->_upper/*12*/);
  1755. while (!((_i)==(0)))
  1756. {
  1757. _rf2=r346item((T346*)(r50writable_attributes(C)),_i);
  1758. _t=(/*RF2*/(((T345*)_rf2))->_result_type/*28*/);
  1759. /*[IF*/
  1760. if(X52need_gc_mark_function(_t)){
  1761. _rc=X52run_class(_t);
  1762. /*[IRF3.3clear*/((((T391*)((T391*)(oBC50wa_cycle))))->_upper)=(-(1));
  1763. /*]*/
  1764. r391add_last((T391*)(oBC50wa_cycle),_rf2);
  1765. /*[IF*/
  1766. if(r50is_wa_cycle(((T50*)_rc),(T0*)C)){
  1767. r391add_last((T391*)(oBC50wa_cyclic_buf),_rf2);
  1768. }
  1769. else{
  1770. r391add_last((T391*)(oBC50wa_buf),_rf2);
  1771. }
  1772. /*FI]*/
  1773. }
  1774. /*FI]*/
  1775. _i=(_i)-(1);
  1776. }
  1777. }
  1778. /*FI]*/
  1779. /*[IF*/
  1780. if((/*(IRF4.6is_empty*/((/*RF2*/((T391*)(oBC50wa_buf))->_upper/*12*/))<(0)/*)*/)&&(/*(IRF4.6is_empty*/((/*RF2*/((T391*)(oBC50wa_cyclic_buf))->_upper/*12*/))<(0)/*)*/)){
  1781. r50gc_set_fsoh_marked_in(C,a2);
  1782. }
  1783. else{
  1784. /*[IF*/
  1785. if(((/*RF2*/((T391*)(oBC50wa_cyclic_buf))->_upper/*12*/))>=(0)){
  1786. r7append(((T7*)a2),((T0*)ms50_4109));
  1787. }
  1788. /*FI]*/
  1789. /*[IF*/
  1790. if(!(a1)){
  1791. r7append(((T7*)a2),((T0*)ms50_7140));
  1792. r2append_in((/*RF2*/(C)->_id/*4*/),a2);
  1793. r7append(((T7*)a2),((T0*)ms50_22050));
  1794. }
  1795. /*FI]*/
  1796. r50gc_set_fsoh_marked_in(C,a2);
  1797. _i=(/*RF2*/((T391*)(oBC50wa_buf))->_upper/*12*/);
  1798. while (!((_i)<(0)))
  1799. {
  1800. _rf2=/*(IRF4.6item*/((/*RF2*/((T391*)(oBC50wa_buf))->_storage/*4*/))[_i]/*)*/;
  1801. r50mark_attribute(C,a2,_rf2);
  1802. _i=(_i)-(1);
  1803. }
  1804. _i=(/*RF2*/((T391*)(oBC50wa_cyclic_buf))->_upper/*12*/);
  1805. while (!((_i)<(0)))
  1806. {
  1807. _rf2=/*(IRF4.6item*/((/*RF2*/((T391*)(oBC50wa_cyclic_buf))->_storage/*4*/))[_i]/*)*/;
  1808. _t=(/*RF2*/(((T345*)_rf2))->_result_type/*28*/);
  1809. _rc=X52run_class(_t);
  1810. /*[IRF3.3clear*/((((T391*)((T391*)(oBC50wa_cycle))))->_upper)=(-(1));
  1811. /*]*/
  1812. r391add_last((T391*)(oBC50wa_cycle),_rf2);
  1813. /*[IF*/
  1814. if(r50is_wa_cycle(((T50*)_rc),(T0*)C)){
  1815. }
  1816. /*FI]*/
  1817. /*[IF*/
  1818. if((((((_i)==(0))&&((/*(IRF4.6count*/((/*RF2*/((T391*)(oBC50wa_cycle))->_upper/*12*/))+(1)/*)*/)==(1)))&&(((/*RF2*/(((T50*)_rc))->_running/*9*/))!=((void*)(NULL))))&&((r53count((T53*)((/*RF2*/(((T50*)_rc))->_running/*9*/))))==(1)))&&((/*(IRF4.6first*/((/*RF2*/((T53*)((/*RF2*/(((T50*)_rc))->_running/*9*/)))->_storage/*0*/))[0]/*)*/)==((void*)(C)))){
  1819. r7append(((T7*)a2),((T0*)ms50_21788));
  1820. r7append(((T7*)a2),X82to_string((/*RF2*/(((T345*)_rf2))->_name/*12*/)));
  1821. r7append(((T7*)a2),((T0*)ms50_12460));
  1822. /*[IF*/
  1823. if(a1){
  1824. r7append(((T7*)a2),((T0*)ms50_6223));
  1825. r2append_in((/*RF2*/(C)->_id/*4*/),a2);
  1826. r7append(((T7*)a2),((T0*)ms50_56916));
  1827. }
  1828. else{
  1829. r7extend(((T7*)a2),((T3)'\51'));
  1830. }
  1831. /*FI]*/
  1832. r7append(((T7*)a2),((T0*)ms50_7116));
  1833. }
  1834. else{
  1835. r50mark_attribute(C,a2,_rf2);
  1836. }
  1837. /*FI]*/
  1838. _i=(_i)-(1);
  1839. }
  1840. /*[IF*/
  1841. if(!(a1)){
  1842. r7extend(((T7*)a2),((T3)'\175'));
  1843. }
  1844. /*FI]*/
  1845. }
  1846. /*FI]*/
  1847. }
  1848.  
  1849.  
  1850. void r50fatal_error(T0* a1){
  1851. /*[IRF3.6append*/{T0* b1=a1;
  1852. r7append((T7*)(oBC66explanation),b1);
  1853. }/*]*/
  1854. r66print_as_fatal_error((T66*)(oBC13eh));
  1855. }
  1856.  
  1857.  
  1858. T6 r50gc_mark_to_follow(T50* C){
  1859. T6 R=0;
  1860. T0* _rc=NULL;
  1861. T0* _r=NULL;
  1862. T2 _i=0;
  1863. _r=(/*RF2*/(C)->_running/*9*/);
  1864. /*[IF*/
  1865. if((_r)!=((void*)(NULL))){
  1866. _i=(/*RF2*/(((T53*)_r))->_upper/*8*/);
  1867. while (!((R)||((_i)==(0))))
  1868. {
  1869. _rc=r53item(((T53*)_r),_i);
  1870. /*[IF*/
  1871. if((_rc)==((void*)(C))){
  1872. R=r50need_gc_mark(C);
  1873. }
  1874. else{
  1875. R=X52need_gc_mark_function((/*RF2*/(((T50*)_rc))->_current_type/*0*/));
  1876. }
  1877. /*FI]*/
  1878. _i=(_i)-(1);
  1879. }
  1880. }
  1881. /*FI]*/
  1882. return R;
  1883. }
  1884.  
  1885.  
  1886. void r50is_deep_equal_in(T50* C,T0* a1){
  1887. T0* _name=NULL;
  1888. T0* _t=NULL;
  1889. T0* _ct=NULL;
  1890. T0* _rf2=NULL;
  1891. T0* _wa=NULL;
  1892. T2 _i=0;
  1893. _ct=(/*RF2*/(C)->_current_type/*0*/);
  1894. r7append(((T7*)a1),((T0*)ms50_17066));
  1895. /*[IF*/
  1896. if(X52is_reference(_ct)){
  1897. r7append(((T7*)a1),((T0*)ms50_22620));
  1898. }
  1899. /*FI]*/
  1900. r7append(((T7*)a1),((T0*)ms50_3536));
  1901. X52c_type_for_target_in(_ct,a1);
  1902. r7append(((T7*)a1),((T0*)ms50_2375));
  1903. /*[IF*/
  1904. if(X52is_reference(_ct)){
  1905. r7append(((T7*)a1),((T0*)ms50_7072));
  1906. }
  1907. else{
  1908. r7append(((T7*)a1),((T0*)ms50_9184));
  1909. }
  1910. /*FI]*/
  1911. r7append(((T7*)a1),((T0*)ms50_1305));
  1912. _wa=r50writable_attributes(C);
  1913. /*[IF*/
  1914. if((_wa)!=((void*)(NULL))){
  1915. _i=(/*RF2*/(((T346*)_wa))->_upper/*12*/);
  1916. while (!((_i)==(0)))
  1917. {
  1918. _rf2=r346item(((T346*)_wa),_i);
  1919. _name=X82to_string((/*RF2*/(((T345*)_rf2))->_name/*12*/));
  1920. _t=X52run_type((/*RF2*/(((T345*)_rf2))->_result_type/*28*/));
  1921. /*[IF*/
  1922. if(X52is_basic_eiffel_expanded(_t)){
  1923. r7append(((T7*)a1),((T0*)ms50_20865));
  1924. r7append(((T7*)a1),_name);
  1925. r7append(((T7*)a1),((T0*)ms50_14828));
  1926. r7append(((T7*)a1),_name);
  1927. r7append(((T7*)a1),((T0*)ms50_604a));
  1928. }
  1929. /*FI]*/
  1930. _i=(_i)-(1);
  1931. }
  1932. _i=(/*RF2*/(((T346*)_wa))->_upper/*12*/);
  1933. while (!((_i)==(0)))
  1934. {
  1935. _rf2=r346item(((T346*)_wa),_i);
  1936. _name=X82to_string((/*RF2*/(((T345*)_rf2))->_name/*12*/));
  1937. _t=X52run_type((/*RF2*/(((T345*)_rf2))->_result_type/*28*/));
  1938. /*[IF*/
  1939. if(X52is_reference(_t)){
  1940. r7append(((T7*)a1),((T0*)ms50_10256));
  1941. r2append_in(X52id(_ct),a1);
  1942. r7append(((T7*)a1),((T0*)ms50_10439));
  1943. /*[IF*/
  1944. if(r47no_check((T47*)(oBC13run_control))){
  1945. r7append(((T7*)a1),((T0*)ms50_1188aa));
  1946. /*[IF*/
  1947. if(X52is_reference(_ct)){
  1948. r7append(((T7*)a1),((T0*)ms50_222));
  1949. }
  1950. /*FI]*/
  1951. }
  1952. /*FI]*/
  1953. r7append(((T7*)a1),((T0*)ms50_1076));
  1954. r7append(((T7*)a1),_name);
  1955. r7append(((T7*)a1),((T0*)ms50_9744));
  1956. r7append(((T7*)a1),_name);
  1957. r7append(((T7*)a1),((T0*)ms50_330));
  1958. }
  1959.  else if(X52is_native_array(_t)){
  1960. /*[IF*/
  1961. if((r50get_feature_with(C,((T0*)ms15_11776)))==((void*)(NULL))){
  1962. r66add_type(_t,((T0*)ms14_4684050));
  1963. r66print_as_error((T66*)(oBC13eh));
  1964. {T68 se_tmp0;
  1965. r66add_position(/*(IRF4.6start_position*/(*(se_tmp0=r315start_position(((T315*)((/*RF2*/(((T345*)_rf2))->_base_feature/*24*/)))),&se_tmp0))/*)*/);
  1966. }
  1967. /*[IRF3.6append*/{T0* b1=((T0*)ms50_227898);
  1968. r7append((T7*)(oBC66explanation),b1);
  1969. }/*]*/
  1970. r66print_as_fatal_error((T66*)(oBC13eh));
  1971. }
  1972. /*FI]*/
  1973. r7append(((T7*)a1),((T0*)ms50_10256a));
  1974. r2append_in(X52id(_t),a1);
  1975. r7append(((T7*)a1),((T0*)ms50_11868));
  1976. /*[IF*/
  1977. if(r47no_check((T47*)(oBC13run_control))){
  1978. r7append(((T7*)a1),((T0*)ms50_1188aaa));
  1979. }
  1980. /*FI]*/
  1981. r7append(((T7*)a1),((T0*)ms50_1076a));
  1982. r7append(((T7*)a1),_name);
  1983. r7append(((T7*)a1),((T0*)ms50_9744a));
  1984. r7append(((T7*)a1),_name);
  1985. r7append(((T7*)a1),((T0*)ms50_7568));
  1986. }
  1987.  else if(X52is_user_expanded(_t)){
  1988. r7append(((T7*)a1),((T0*)ms50_10256aa));
  1989. r2append_in(X52id(_t),a1);
  1990. r7append(((T7*)a1),((T0*)ms50_15064));
  1991. /*[IF*/
  1992. if(r47no_check((T47*)(oBC13run_control))){
  1993. r7append(((T7*)a1),((T0*)ms50_1188aaaa));
  1994. }
  1995. /*FI]*/
  1996. r7append(((T7*)a1),((T0*)ms50_4932));
  1997. r7append(((T7*)a1),_name);
  1998. r7append(((T7*)a1),((T0*)ms50_11178));
  1999. r7append(((T7*)a1),_name);
  2000. r7append(((T7*)a1),((T0*)ms50_330a));
  2001. }
  2002. /*FI]*/
  2003. _i=(_i)-(1);
  2004. }
  2005. }
  2006. /*FI]*/
  2007. r7append(((T7*)a1),((T0*)ms50_17400));
  2008. }
  2009.  
  2010.  
  2011. T0* r50get_result_type(T50* C,T0* a1){
  2012. T0* R=NULL;
  2013. T0* _bc=NULL;
  2014. T0* _f=NULL;
  2015. T0* _fn2_key=NULL;
  2016. T0* _rf=NULL;
  2017. T0* _wbc=NULL;
  2018. T0* _fn2=NULL;
  2019. {T68 se_tmp0;
  2020. _wbc=(/*RF2*/((*(se_tmp0=X82start_position(a1),&se_tmp0)))._base_class/*0*/);
  2021. }
  2022. _fn2=r51new_name_of((T51*)(r50base_class(C)),_wbc,a1);
  2023. _fn2_key=X82to_key(_fn2);
  2024. /*[IF*/
  2025. if(r348has((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_fn2_key)){
  2026. _rf=r348at((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),_fn2_key);
  2027. R=X334result_type(_rf);
  2028. /*[IF*/
  2029. if(X52is_run_type(R)){
  2030. R=X52run_type(R);
  2031. }
  2032. else{
  2033. R=X52to_runnable(R,(/*RF2*/(C)->_current_type/*0*/));
  2034. R=X52run_type(R);
  2035. }
  2036. /*FI]*/
  2037. }
  2038. else{
  2039. _bc=r50base_class(C);
  2040. _f=r51look_up_for(((T51*)_bc),(T0*)C,_fn2);
  2041. /*[IF*/
  2042. if((_f)==((void*)(NULL))){
  2043. r50efnf(C,_bc,_fn2);
  2044. {T68 se_tmp0;
  2045. r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
  2046. }
  2047. {T68 se_tmp0;
  2048. r66add_position((*(se_tmp0=X82start_position(_fn2),&se_tmp0)));
  2049. }
  2050. r50fatal_error(((T0*)ms50_22284));
  2051. }
  2052. else{
  2053. R=X90result_type(_f);
  2054. /*[IF*/
  2055. if((R)==((void*)(NULL))){
  2056. {T68 se_tmp0;
  2057. r66add_position((*(se_tmp0=X90start_position(_f),&se_tmp0)));
  2058. }
  2059. {T68 se_tmp0;
  2060. r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
  2061. }
  2062. {T68 se_tmp0;
  2063. r66add_position((*(se_tmp0=X82start_position(_fn2),&se_tmp0)));
  2064. }
  2065. r50fatal_error(((T0*)ms50_50576));
  2066. }
  2067. else{
  2068. R=X52to_runnable(R,(/*RF2*/(C)->_current_type/*0*/));
  2069. R=X52run_type(R);
  2070. }
  2071. /*FI]*/
  2072. }
  2073. /*FI]*/
  2074. }
  2075. /*FI]*/
  2076. return R;
  2077. }
  2078.  
  2079.  
  2080. T0* r50get_or_fatal_error(T50* C,T0* a1){
  2081. T0* R=NULL;
  2082. R=r50get_feature(C,a1);
  2083. /*[IF*/
  2084. if((R)==((void*)(NULL))){
  2085. {T68 se_tmp0;
  2086. r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
  2087. }
  2088. /*[IRF3.6append*/{T0* b1=((T0*)ms50_6056);
  2089. r7append((T7*)(oBC66explanation),b1);
  2090. }/*]*/
  2091. /*[IRF3.6append*/{T0* b1=X82to_string(a1);
  2092. r7append((T7*)(oBC66explanation),b1);
  2093. }/*]*/
  2094. /*[IRF3.6append*/{T0* b1=((T0*)ms50_61446);
  2095. r7append((T7*)(oBC66explanation),b1);
  2096. }/*]*/
  2097. r66add_type((/*RF2*/(C)->_current_type/*0*/),((T0*)ms14_46));
  2098. r66print_as_fatal_error((T66*)(oBC13eh));
  2099. }
  2100. /*FI]*/
  2101. return R;
  2102. }
  2103. T0*oBC50wa_cyclic_buf=NULL;
  2104.  
  2105.  
  2106. T0* r50get_copy(T50* C){
  2107. T0* R=NULL;
  2108. R=r50get_rf_with(C,/*SSFRF4*//*X90first_name*//*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/((T198*)(r51get_copy((T51*)(r50class_general()))))->_names/*8*/))))->_first/*0*/)/*)*/);
  2109. return R;
  2110. }
  2111.  
  2112.  
  2113. void r50gc_align_mark_fixed_size(T50* C,T0* a1){
  2114. r7append(((T7*)a1),((T0*)ms14_404));
  2115. r2append_in((/*RF2*/(C)->_id/*4*/),a1);
  2116. r7append(((T7*)a1),((T0*)ms50_6818));
  2117. r2append_in((/*RF2*/(C)->_id/*4*/),a1);
  2118. r7append(((T7*)a1),((T0*)ms50_930620));
  2119. r2append_in((/*RF2*/(C)->_id/*4*/),a1);
  2120. r7append(((T7*)a1),((T0*)ms50_2813102));
  2121. r2append_in((/*RF2*/(C)->_id/*4*/),a1);
  2122. r7append(((T7*)a1),((T0*)ms50_9158));
  2123. r50gc_mark_fixed_size(C,1,a1);
  2124. r7append(((T7*)a1),((T0*)ms50_1080));
  2125. }
  2126.  
  2127.  
  2128. T0* r50get_feature_with(T50* C,T0* a1){
  2129. T0* R=NULL;
  2130. T0* _sfn=NULL;
  2131. /*[IF*/
  2132. if(r348has((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),a1)){
  2133. R=r348at((T348*)((/*RF2*/(C)->_feature_dictionary/*18*/)),a1);
  2134. }
  2135. else{
  2136. {T138*n=((T138*)malloc(sizeof(*n))/*20*/);
  2137. *n=M138;
  2138. /*[IRF3.3unknown_position*/((((T138*)(n)))->_to_string)=(a1);
  2139. /*]*/
  2140. _sfn=((T0*)n);
  2141. }
  2142. R=r50get_feature(C,_sfn);
  2143. }
  2144. /*FI]*/
  2145. return R;
  2146. }
  2147.  
  2148.  
  2149. void r50compile_to_c(T50* C,T2 a1){
  2150. T2 _cc2=0;
  2151. T2 _cc1=0;
  2152. T0* _rc2=NULL;
  2153. T0* _rc1=NULL;
  2154. T2 _i=0;
  2155. /*[IF*/
  2156. if((/*RF2*/(C)->_compile_to_c_done/*17*/)){
  2157. }
  2158.  else if(!((/*RF2*/(C)->_at_run_time/*8*/))){
  2159. (/*SFN*/C->_compile_to_c_done)=1;
  2160. }
  2161.  else if((a1)==(0)){
  2162. r50really_compile_to_c(C);
  2163. }
  2164. else{
  2165. _i=(/*RF2*/((T56*)((/*RF2*/(C)->_actuals_clients/*26*/)))->_upper/*8*/);
  2166. /*[IF*/
  2167. if((_i)>=(0)){
  2168. _rc1=((T0*)(C));
  2169. _cc1=(_i)+(1);
  2170. while (!((_i)==(0)))
  2171. {
  2172. _rc2=/*(IRF4.6item*/((/*RF2*/((T56*)((/*RF2*/(C)->_actuals_clients/*26*/)))->_storage/*0*/))[_i]/*)*/;
  2173. /*[IF*/
  2174. if(!((/*RF2*/(((T50*)_rc2))->_compile_to_c_done/*17*/))){
  2175. _cc2=/*(IRF4.6count*/((/*RF2*/((T56*)((/*RF2*/(((T50*)_rc2))->_actuals_clients/*26*/)))->_upper/*8*/))+(1)/*)*/;
  2176. /*[IF*/
  2177. if((_cc2)>(_cc1)){
  2178. _rc1=_rc2;
  2179. _cc1=_cc2;
  2180. }
  2181. /*FI]*/
  2182. }
  2183. /*FI]*/
  2184. _i=(_i)-(1);
  2185. }
  2186. /*[IF*/
  2187. if((_rc1)==((void*)(C))){
  2188. r50really_compile_to_c(C);
  2189. }
  2190. else{
  2191. r50compile_to_c(((T50*)_rc1),(a1)-(1));
  2192. }
  2193. /*FI]*/
  2194. }
  2195. /*FI]*/
  2196. }
  2197. /*FI]*/
  2198. }
  2199. T0*oBC50wa_cycle=NULL;
  2200.  
  2201.  
  2202. T0* r50get_rf_with(T50* C,T0* a1){
  2203. T0* R=NULL;
  2204. T0* _wbc=NULL;
  2205. T0* _fn2=NULL;
  2206. {T68 se_tmp0;
  2207. _wbc=(/*RF2*/((*(se_tmp0=X82start_position(a1),&se_tmp0)))._base_class/*0*/);
  2208. }
  2209. _fn2=r51new_name_of((T51*)(r50base_class(C)),_wbc,a1);
  2210. /*[IF*/
  2211. if((_fn2)!=((void*)(a1))){
  2212. {T68 se_tmp0;
  2213. r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
  2214. }
  2215. R=r50get_or_fatal_error(C,_fn2);
  2216. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC66explanation))))->_count)=(0);
  2217. /*]*/
  2218. /*[IRF3.3clear*/((((T67*)((T67*)(oBC66positions))))->_upper)=(-(1));
  2219. /*]*/
  2220. /*]*/
  2221. }
  2222. else{
  2223. R=r50get_or_fatal_error(C,_fn2);
  2224. }
  2225. /*FI]*/
  2226. return R;
  2227. }
  2228.  
  2229.  
  2230. T0* r50base_class_name(T50* C){
  2231. T0* R=NULL;
  2232. R=X52base_class_name((/*RF2*/(C)->_current_type/*0*/));
  2233. return R;
  2234. }
  2235.  
  2236.  
  2237. void r50add_running(T50* C,T0* a1){
  2238. /*[IF*/
  2239. if(((/*RF2*/(C)->_running/*9*/))==((void*)(NULL))){
  2240. {T53*n=((T53*)malloc(sizeof(*n))/*16*/);
  2241. *n=M53;
  2242. r53with_capacity(n,8,1);
  2243. (/*SFN*/C->_running)=((T0*)n);
  2244. }
  2245. r53add_last((T53*)((/*RF2*/(C)->_running/*9*/)),a1);
  2246. }
  2247. else{
  2248. /*[IF*/
  2249. if(!(r53fast_has((T53*)((/*RF2*/(C)->_running/*9*/)),a1))){
  2250. r53add_last((T53*)((/*RF2*/(C)->_running/*9*/)),a1);
  2251. }
  2252. /*FI]*/
  2253. }
  2254. /*FI]*/
  2255. }
  2256.  
  2257.  
  2258. T2 r50offset_of(T50* C,T0* a1){
  2259. T2 R=0;
  2260. T2 _i=0;
  2261. T0* _t=NULL;
  2262. T0* _wa=NULL;
  2263. /*[IF*/
  2264. if(r50is_tagged(C)){
  2265. R=sizeof(T2);
  2266. }
  2267. /*FI]*/
  2268. _wa=r50writable_attributes(C);
  2269. _i=(/*RF2*/(((T346*)_wa))->_upper/*12*/);
  2270. while (!((r346item(((T346*)_wa),_i))==((void*)(a1))))
  2271. {
  2272. _t=(/*RF2*/((T345*)(r346item(((T346*)_wa),_i)))->_result_type/*28*/);
  2273. R=(R)+(X52c_sizeof(_t));
  2274. _i=(_i)-(1);
  2275. }
  2276. return R;
  2277. }
  2278.  
  2279.  
  2280. T6 r50need_gc_mark(T50* C){
  2281. T6 R=0;
  2282. T0* _t=NULL;
  2283. T0* _rf2=NULL;
  2284. T0* _wa=NULL;
  2285. T2 _i=0;
  2286. _wa=r50writable_attributes(C);
  2287. /*[IF*/
  2288. if((_wa)!=((void*)(NULL))){
  2289. _i=(/*RF2*/(((T346*)_wa))->_upper/*12*/);
  2290. while (!((R)||((_i)==(0))))
  2291. {
  2292. _rf2=r346item(((T346*)_wa),_i);
  2293. _t=(/*RF2*/(((T345*)_rf2))->_result_type/*28*/);
  2294. R=X52need_gc_mark_function(_t);
  2295. _i=(_i)-(1);
  2296. }
  2297. }
  2298. /*FI]*/
  2299. return R;
  2300. }
  2301.  
  2302.  
  2303. void r50gc_info_in(T50* C,T0* a1){
  2304. /*[IF*/
  2305. if((/*RF2*/(C)->_at_run_time/*8*/)){
  2306. X52gc_info_in((/*RF2*/(C)->_current_type/*0*/),a1);
  2307. }
  2308. /*FI]*/
  2309. }
  2310.  
  2311.  
  2312. void r50gc_define2(T50* C){
  2313. /*[IF*/
  2314. if((/*RF2*/(C)->_at_run_time/*8*/)){
  2315. X52gc_define2((/*RF2*/(C)->_current_type/*0*/));
  2316. }
  2317. /*FI]*/
  2318. }
  2319.  
  2320.  
  2321. T0* r50id_provider(void){
  2322. if(fBC13id_provider==0){fBC13id_provider=1;{
  2323. {T39*n=((T39*)malloc(sizeof(*n))/*4*/);
  2324. *n=M39;
  2325. oBC13id_provider=((T0*)n);
  2326. r39make(n);
  2327. }
  2328. }}
  2329. return oBC13id_provider;
  2330. }
  2331.  
  2332.  
  2333. void r50add_client(T50* C,T0* a1){
  2334. T2 _i=0;
  2335. _i=r56fast_index_of((T56*)((/*RF2*/(C)->_actuals_clients/*26*/)),a1);
  2336. /*[IF*/
  2337. if((_i)>((/*RF2*/((T56*)((/*RF2*/(C)->_actuals_clients/*26*/)))->_upper/*8*/))){
  2338. r56add_last((T56*)((/*RF2*/(C)->_actuals_clients/*26*/)),a1);
  2339. }
  2340. /*FI]*/
  2341. }
  2342.  
  2343.  
  2344. T0* r233to_runnable_integer(T233* C,T0* a1){
  2345. T0* R=NULL;
  2346. T0* _e_when=NULL;
  2347. T2 _i=0;
  2348. /*[IF*/
  2349. if(((/*RF2*/(C)->_e_inspect/*0*/))==((void*)(NULL))){
  2350. (/*SFN*/C->_e_inspect)=a1;
  2351. _i=1;
  2352. while (!(((_i)>((/*RF2*/((T234*)((/*RF2*/(C)->_list/*4*/)))->_upper/*8*/)))||((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)>(0))))
  2353. {
  2354. _e_when=r232to_runnable_integer((T232*)(r234item((T234*)((/*RF2*/(C)->_list/*4*/)),_i)),(T0*)C);
  2355. /*[IF*/
  2356. if((_e_when)==((void*)(NULL))){
  2357. {T68 se_tmp0;
  2358. r233error((*(se_tmp0=r233start_position(C),&se_tmp0)),((T0*)ms233_14812));
  2359. }
  2360. }
  2361. else{
  2362. /*[IRF3.6put*/{T234* C1=(T234*)((/*RF2*/(C)->_list/*4*/));
  2363. T0* b1=_e_when;
  2364. T2 b2=_i;
  2365. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  2366. }/*]*/
  2367. }
  2368. /*FI]*/
  2369. _i=(_i)+(1);
  2370. }
  2371. R=((T0*)(C));
  2372. }
  2373. else{
  2374. {T233*n=((T233*)malloc(sizeof(*n))/*8*/);
  2375. *n=M233;
  2376. r233from_when_list(n,(T0*)C);
  2377. R=((T0*)n);
  2378. }
  2379. R=r233to_runnable_integer(((T233*)R),a1);
  2380. }
  2381. /*FI]*/
  2382. return R;
  2383. }
  2384.  
  2385.  
  2386. void r233make(T233* C,T0* a1){
  2387. {T234*n=((T234*)malloc(sizeof(*n))/*16*/);
  2388. *n=M234;
  2389. r234with_capacity(n,4,1);
  2390. (/*SFN*/C->_list)=((T0*)n);
  2391. }
  2392. r234add_last((T234*)((/*RF2*/(C)->_list/*4*/)),a1);
  2393. }
  2394.  
  2395.  
  2396. void r233from_when_list(T233* C,T0* a1){
  2397. T0* _e_when=NULL;
  2398. T2 _i=0;
  2399. (/*SFN*/C->_list)=r234twin((T234*)((/*RF2*/(((T233*)a1))->_list/*4*/)));
  2400. _i=1;
  2401. while (!((_i)>((/*RF2*/((T234*)((/*RF2*/(C)->_list/*4*/)))->_upper/*8*/))))
  2402. {
  2403. {T232*n=((T232*)malloc(sizeof(*n))/*28*/);
  2404. *n=M232;
  2405. r232from_e_when(n,r234item((T234*)((/*RF2*/(C)->_list/*4*/)),_i));
  2406. _e_when=((T0*)n);
  2407. }
  2408. /*[IRF3.6put*/{T234* C1=(T234*)((/*RF2*/(C)->_list/*4*/));
  2409. T0* b1=_e_when;
  2410. T2 b2=_i;
  2411. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  2412. }/*]*/
  2413. _i=(_i)+(1);
  2414. }
  2415. }
  2416.  
  2417.  
  2418. void r233compile_to_c(T233* C,T68 a1){
  2419. T0* _last_compound=NULL;
  2420. T2 _i=0;
  2421. /*[IF*/
  2422. if(((/*RF2*/(C)->_list/*4*/))!=((void*)(NULL))){
  2423. _i=1;
  2424. while (!((_i)==((/*RF2*/((T234*)((/*RF2*/(C)->_list/*4*/)))->_upper/*8*/))))
  2425. {
  2426. r232compile_to_c((T232*)(r234item((T234*)((/*RF2*/(C)->_list/*4*/)),_i)));
  2427. _i=(_i)+(1);
  2428. /*[IF*/
  2429. if((_i)<((/*RF2*/((T234*)((/*RF2*/(C)->_list/*4*/)))->_upper/*8*/))){
  2430. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  2431. T3 b1=((T3)'\40');
  2432. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2433. }/*]*/
  2434. /*]*/
  2435. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_1700));
  2436. /*]*/
  2437. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  2438. T3 b1=((T3)'\40');
  2439. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2440. }/*]*/
  2441. /*]*/
  2442. }
  2443. /*FI]*/
  2444. }
  2445. /*[IF*/
  2446. if((_i)>(1)){
  2447. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  2448. T3 b1=((T3)'\40');
  2449. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2450. }/*]*/
  2451. /*]*/
  2452. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_1700));
  2453. /*]*/
  2454. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  2455. T3 b1=((T3)'\40');
  2456. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2457. }/*]*/
  2458. /*]*/
  2459. }
  2460. /*FI]*/
  2461. /*[IF*/
  2462. if((r68is_unknown(&a1))&&(r47boost((T47*)(oBC13run_control)))){
  2463. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  2464. T3 b1=((T3)'\173');
  2465. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2466. }/*]*/
  2467. /*]*/
  2468. _last_compound=(/*RF2*/((T232*)(r234item((T234*)((/*RF2*/(C)->_list/*4*/)),_i)))->_compound/*16*/);
  2469. /*[IF*/
  2470. if((_last_compound)!=((void*)(NULL))){
  2471. r215compile_to_c(((T215*)_last_compound));
  2472. }
  2473. /*FI]*/
  2474. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  2475. T3 b1=((T3)'\175');
  2476. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2477. }/*]*/
  2478. /*]*/
  2479. }
  2480. else{
  2481. r232compile_to_c((T232*)(r234item((T234*)((/*RF2*/(C)->_list/*4*/)),_i)));
  2482. }
  2483. /*FI]*/
  2484. }
  2485. /*FI]*/
  2486. }
  2487.  
  2488.  
  2489. void r233afd_check(T233* C){
  2490. T2 _i=0;
  2491. _i=(/*RF2*/((T234*)((/*RF2*/(C)->_list/*4*/)))->_upper/*8*/);
  2492. while (!((_i)==(0)))
  2493. {
  2494. r232afd_check((T232*)(r234item((T234*)((/*RF2*/(C)->_list/*4*/)),_i)));
  2495. _i=(_i)-(1);
  2496. }
  2497. }
  2498.  
  2499.  
  2500. T6 r233use_current(T233* C){
  2501. T6 R=0;
  2502. T2 _i=0;
  2503. /*[IF*/
  2504. if(((/*RF2*/(C)->_list/*4*/))!=((void*)(NULL))){
  2505. _i=1;
  2506. while (!(((_i)>((/*RF2*/((T234*)((/*RF2*/(C)->_list/*4*/)))->_upper/*8*/)))||(R)))
  2507. {
  2508. R=r232use_current((T232*)(r234item((T234*)((/*RF2*/(C)->_list/*4*/)),_i)));
  2509. _i=(_i)+(1);
  2510. }
  2511. }
  2512. /*FI]*/
  2513. return R;
  2514. }
  2515.  
  2516.  
  2517. T6 r233stupid_switch(T233* C,T0* a1){
  2518. T6 R=0;
  2519. T2 _i=0;
  2520. R=1;
  2521. /*[IF*/
  2522. if(((/*RF2*/(C)->_list/*4*/))!=((void*)(NULL))){
  2523. _i=1;
  2524. while (!((!(R))||((_i)>((/*RF2*/((T234*)((/*RF2*/(C)->_list/*4*/)))->_upper/*8*/)))))
  2525. {
  2526. R=r232stupid_switch((T232*)(r234item((T234*)((/*RF2*/(C)->_list/*4*/)),_i)),a1);
  2527. _i=(_i)+(1);
  2528. }
  2529. }
  2530. /*FI]*/
  2531. return R;
  2532. }
  2533.  
  2534.  
  2535. T0* r233to_runnable_character(T233* C,T0* a1){
  2536. T0* R=NULL;
  2537. T0* _e_when=NULL;
  2538. T2 _i=0;
  2539. /*[IF*/
  2540. if(((/*RF2*/(C)->_e_inspect/*0*/))==((void*)(NULL))){
  2541. (/*SFN*/C->_e_inspect)=a1;
  2542. _i=1;
  2543. while (!(((_i)>((/*RF2*/((T234*)((/*RF2*/(C)->_list/*4*/)))->_upper/*8*/)))||((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)>(0))))
  2544. {
  2545. _e_when=r232to_runnable_character((T232*)(r234item((T234*)((/*RF2*/(C)->_list/*4*/)),_i)),(T0*)C);
  2546. /*[IF*/
  2547. if((_e_when)==((void*)(NULL))){
  2548. {T68 se_tmp0;
  2549. r233error((*(se_tmp0=r233start_position(C),&se_tmp0)),((T0*)ms233_14812));
  2550. }
  2551. }
  2552. else{
  2553. /*[IRF3.6put*/{T234* C1=(T234*)((/*RF2*/(C)->_list/*4*/));
  2554. T0* b1=_e_when;
  2555. T2 b2=_i;
  2556. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  2557. }/*]*/
  2558. }
  2559. /*FI]*/
  2560. _i=(_i)+(1);
  2561. }
  2562. R=((T0*)(C));
  2563. }
  2564. else{
  2565. {T233*n=((T233*)malloc(sizeof(*n))/*8*/);
  2566. *n=M233;
  2567. r233from_when_list(n,(T0*)C);
  2568. R=((T0*)n);
  2569. }
  2570. R=r233to_runnable_character(((T233*)R),a1);
  2571. }
  2572. /*FI]*/
  2573. return R;
  2574. }
  2575.  
  2576.  
  2577. T6 r233includes_integer(T233* C,T2 a1){
  2578. T6 R=0;
  2579. T2 _i=0;
  2580. _i=1;
  2581. while (!((R)||((_i)>((/*RF2*/((T234*)((/*RF2*/(C)->_list/*4*/)))->_upper/*8*/)))))
  2582. {
  2583. R=r232includes_integer((T232*)(r234item((T234*)((/*RF2*/(C)->_list/*4*/)),_i)),a1);
  2584. _i=(_i)+(1);
  2585. }
  2586. return R;
  2587. }
  2588.  
  2589.  
  2590. void r233error(T68 a1,T0* a2){
  2591. r66add_position(a1);
  2592. /*[IRF3.6append*/{T0* b1=a2;
  2593. r7append((T7*)(oBC66explanation),b1);
  2594. }/*]*/
  2595. r66print_as_error((T66*)(oBC13eh));
  2596. }
  2597.  
  2598.  
  2599. T68 r233start_position(T233* C){
  2600. T68 R={NULL,0};
  2601. R=(/*RF2*/((T232*)(r234item((T234*)((/*RF2*/(C)->_list/*4*/)),1)))->_start_position/*0*/);
  2602. return R;
  2603. }
  2604.  
  2605.  
  2606. void r191compile_to_c_old(T191* C){
  2607. X104compile_to_c_old((/*RF2*/(C)->_target/*4*/));
  2608. /*[IF*/
  2609. {/*AT*//*SSPRF3*//*X139compile_to_c_old*/r139compile_to_c_old((T139*)((/*RF2*/(C)->_arguments/*8*/)));
  2610. }
  2611. /*FI]*/
  2612. }
  2613.  
  2614.  
  2615. T0* r191runnable_expression(T0* a1,T0* a2){
  2616. T0* R=NULL;
  2617. R=X104to_runnable(a1,a2);
  2618. /*[IF*/
  2619. if((R)==((void*)(NULL))){
  2620. {T68 se_tmp0;
  2621. r66add_position((*(se_tmp0=X104start_position(a1),&se_tmp0)));
  2622. }
  2623. r191fatal_error(((T0*)ms116_16290));
  2624. }
  2625. /*FI]*/
  2626. return R;
  2627. }
  2628.  
  2629.  
  2630. void r191run_feature_has_result(T191* C){
  2631. /*[IF*/
  2632. if((X334result_type((/*RF2*/(C)->_run_feature/*16*/)))==((void*)(NULL))){
  2633. {T68 se_tmp0;
  2634. r66add_position((*(se_tmp0=X334start_position((/*RF2*/(C)->_run_feature/*16*/)),&se_tmp0)));
  2635. }
  2636. r66add_position((/*RF2*/((T129*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
  2637. r191fatal_error(((T0*)ms115_53215));
  2638. }
  2639. /*FI]*/
  2640. }
  2641.  
  2642.  
  2643. void r191run_feature_match(T191* C,T0* a1){
  2644. r191run_feature_has_result(C);
  2645. X139match_with((/*RF2*/(C)->_arguments/*8*/),(/*RF2*/(C)->_run_feature/*16*/),a1);
  2646. }
  2647.  
  2648.  
  2649. T0* r191add_comment(T191* C,T0* a1){
  2650. T0* R=NULL;
  2651. /*[IF*/
  2652. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
  2653. R=((T0*)(C));
  2654. }
  2655. else{
  2656. {T229*n=((T229*)malloc(sizeof(*n))/*12*/);
  2657. *n=M229;
  2658. r229make(n,(T0*)C,a1);
  2659. R=((T0*)n);
  2660. }
  2661. }
  2662. /*FI]*/
  2663. return R;
  2664. }
  2665.  
  2666.  
  2667. void r191with(T191* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  2668. (/*SFN*/C->_target)=a1;
  2669. (/*SFN*/C->_feature_name)=a2;
  2670. (/*SFN*/C->_arguments)=a3;
  2671. (/*SFN*/C->_run_feature)=a4;
  2672. r191run_feature_match(C,a5);
  2673. }
  2674.  
  2675.  
  2676. void r191mapping_c_target(T191* C,T0* a1){
  2677. T0* _actual_type=NULL;
  2678. T6 _flag=0;
  2679. _flag=r325call_invariant_start(a1);
  2680. _actual_type=X52run_type(r191result_type(C));
  2681. /*[IF*/
  2682. if(X52is_reference(_actual_type)){
  2683. /*[IF*/
  2684. if(X52is_reference(a1)){
  2685. X52mapping_cast(a1);
  2686. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  2687. T3 b1=((T3)'\50');
  2688. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2689. }/*]*/
  2690. /*]*/
  2691. r191compile_to_c(C);
  2692. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  2693. T3 b1=((T3)'\51');
  2694. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2695. }/*]*/
  2696. /*]*/
  2697. }
  2698. else{
  2699. r191compile_to_c(C);
  2700. }
  2701. /*FI]*/
  2702. }
  2703. else{
  2704. /*[IF*/
  2705. if(X52is_reference(a1)){
  2706. r191compile_to_c(C);
  2707. }
  2708. else{
  2709. /*[IF*/
  2710. if(X52need_c_struct(a1)){
  2711. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  2712. T3 b1=((T3)'\46');
  2713. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2714. }/*]*/
  2715. /*]*/
  2716. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  2717. T3 b1=((T3)'\50');
  2718. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2719. }/*]*/
  2720. /*]*/
  2721. r191compile_to_c(C);
  2722. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  2723. T3 b1=((T3)'\51');
  2724. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2725. }/*]*/
  2726. /*]*/
  2727. }
  2728. else{
  2729. r191compile_to_c(C);
  2730. }
  2731. /*FI]*/
  2732. }
  2733. /*FI]*/
  2734. }
  2735. /*FI]*/
  2736. /*[IF*/
  2737. if(_flag){
  2738. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T48* C1=(T48*)(oBC325out_c);
  2739. T3 b1=((T3)'\51');
  2740. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  2741. }/*]*/
  2742. /*]*/
  2743. }
  2744. /*FI]*/
  2745. }
  2746.  
  2747.  
  2748. void r191afd_check(T191* C){
  2749. T0* _running=NULL;
  2750. T0* _rc=NULL;
  2751. /*[IF*/
  2752. if(((/*RF2*/(C)->_run_feature/*16*/))!=((void*)(NULL))){
  2753. _rc=X52run_class(X104result_type((/*RF2*/(C)->_target/*4*/)));
  2754. _running=(/*RF2*/(((T50*)_rc))->_running/*9*/);
  2755. /*[IF*/
  2756. if((_running)==((void*)(NULL))){
  2757. }
  2758.  else if((r53count(((T53*)_running)))>(1)){
  2759. r351update((/*RF2*/(C)->_target/*4*/),(/*RF2*/(C)->_run_feature/*16*/));
  2760. }
  2761. /*FI]*/
  2762. }
  2763. /*FI]*/
  2764. X104afd_check((/*RF2*/(C)->_target/*4*/));
  2765. /*[IF*/
  2766. {/*AT*//*SSPRF3*//*X139afd_check*/r139afd_check((T139*)((/*RF2*/(C)->_arguments/*8*/)));
  2767. }
  2768. /*FI]*/
  2769. }
  2770.  
  2771.  
  2772. void r191c_declare_for_old(T191* C){
  2773. X104c_declare_for_old((/*RF2*/(C)->_target/*4*/));
  2774. /*[IF*/
  2775. {/*AT*//*SSPRF3*//*X139c_declare_for_old*/r139c_declare_for_old((T139*)((/*RF2*/(C)->_arguments/*8*/)));
  2776. }
  2777. /*FI]*/
  2778. }
  2779.  
  2780.  
  2781. void r191collect_c_tmp(T191* C){
  2782. /*[IF*/
  2783. if(((/*RF2*/(C)->_run_feature/*16*/))!=((void*)(NULL))){
  2784. X334collect_c_tmp((/*RF2*/(C)->_run_feature/*16*/));
  2785. }
  2786. /*FI]*/
  2787. X104collect_c_tmp((/*RF2*/(C)->_target/*4*/));
  2788. /*[IF*/
  2789. if(((/*RF2*/(C)->_arguments/*8*/))!=((void*)(NULL))){
  2790. /*SSPRF3*//*X139collect_c_tmp*/r139collect_c_tmp((T139*)((/*RF2*/(C)->_arguments/*8*/)));
  2791. }
  2792. /*FI]*/
  2793. }
  2794.  
  2795.  
  2796. T0* r191operator(void){
  2797. T0* R=NULL;
  2798. R=((T0*)ms15_246);
  2799. return R;
  2800. }
  2801.  
  2802.  
  2803. T6 r191use_current(T191* C){
  2804. T6 R=0;
  2805. /*[IF*/
  2806. {/*AT*/R=/*SSFRF4*//*X139use_current*/r139use_current((T139*)((/*RF2*/(C)->_arguments/*8*/)));
  2807. }
  2808. /*FI]*/
  2809. /*[IF*/
  2810. if(R){
  2811. }
  2812.  else if(X104is_current((/*RF2*/(C)->_target/*4*/))){
  2813. R=X334use_current((/*RF2*/(C)->_run_feature/*16*/));
  2814. }
  2815. else{
  2816. R=X104use_current((/*RF2*/(C)->_target/*4*/));
  2817. }
  2818. /*FI]*/
  2819. return R;
  2820. }
  2821.  
  2822.  
  2823. T0* r191runnable_args(T0* a1,T0* a2){
  2824. T0* R=NULL;
  2825. R=X139to_runnable(a1,a2);
  2826. /*[IF*/
  2827. if((R)==((void*)(NULL))){
  2828. {T68 se_tmp0;
  2829. r66add_position((*(se_tmp0=X139start_position(a1),&se_tmp0)));
  2830. }
  2831. r191fatal_error(((T0*)ms14_12870));
  2832. }
  2833. /*FI]*/
  2834. return R;
  2835. }
  2836.  
  2837.  
  2838. T0* r191to_runnable(T191* C,T0* a1){
  2839. T0* R=NULL;
  2840. T0* _target_type=NULL;
  2841. T0* _argument_type=NULL;
  2842. T0* _rf=NULL;
  2843. T0* _a=NULL;
  2844. T0* _t=NULL;
  2845. _t=r191runnable_expression((/*RF2*/(C)->_target/*4*/),a1);
  2846. _a=r191runnable_args((/*RF2*/(C)->_arguments/*8*/),a1);
  2847. _target_type=X104result_type(_t);
  2848. _argument_type=X104result_type(r191arg1(C));
  2849. /*[IF*/
  2850. if(X52is_real(_argument_type)){
  2851. /*[IF*/
  2852. if(X52is_integer(_target_type)){
  2853. _t=r341implicit_cast((T341*)(oBC13conversion_handler),_t,_argument_type);
  2854. }
  2855. /*FI]*/
  2856. }
  2857.  else if(X52is_double(_argument_type)){
  2858. /*[IF*/
  2859. if((X52is_integer(_target_type))||(X52is_real(_target_type))){
  2860. _t=r341implicit_cast((T341*)(oBC13conversion_handler),_t,_argument_type);
  2861. }
  2862. /*FI]*/
  2863. }
  2864. /*FI]*/
  2865. _rf=r191run_feature_for(C,_t,a1);
  2866. /*[IF*/
  2867. if(((/*RF2*/(C)->_run_feature/*16*/))==((void*)(NULL))){
  2868. (/*SFN*/C->_target)=_t;
  2869. (/*SFN*/C->_arguments)=_a;
  2870. (/*SFN*/C->_run_feature)=_rf;
  2871. r191run_feature_match(C,a1);
  2872. R=((T0*)(C));
  2873. }
  2874.  else if(((_t)==((void*)((/*RF2*/(C)->_target/*4*/))))&&((_a)==((void*)((/*RF2*/(C)->_arguments/*8*/))))){
  2875. R=((T0*)(C));
  2876. }
  2877. else{
  2878. {T191*n=((T191*)malloc(sizeof(*n))/*24*/);
  2879. *n=M191;
  2880. r191with(n,_t,(/*RF2*/(C)->_feature_name/*12*/),_a,_rf,a1);
  2881. R=((T0*)n);
  2882. }
  2883. }
  2884. /*FI]*/
  2885. return R;
  2886. }
  2887.  
  2888.  
  2889. T2 r191to_integer(T191* C){
  2890. T2 R=0;
  2891. r191error(/*(IRF4.6start_position*/(/*RF2*/(((T129*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/,((T0*)ms14_45441));
  2892. return R;
  2893. }
  2894.  
  2895.  
  2896. T6 r191is_static(T191* C){
  2897. T6 R=0;
  2898. /*[IF*/
  2899. if(X52is_integer(X104result_type((/*RF2*/(C)->_target/*4*/)))){
  2900. /*[IF*/
  2901. if((X104is_static((/*RF2*/(C)->_target/*4*/)))&&(X104is_static(r191arg1(C)))){
  2902. R=1;
  2903. /*[IF*/
  2904. if((X104static_value((/*RF2*/(C)->_target/*4*/)))>=(X104static_value(r191arg1(C)))){
  2905. (/*SFN*/C->_static_value_mem)=1;
  2906. }
  2907. else{
  2908. (/*SFN*/C->_static_value_mem)=0;
  2909. }
  2910. /*FI]*/
  2911. }
  2912. /*FI]*/
  2913. }
  2914. /*FI]*/
  2915. return R;
  2916. }
  2917.  
  2918.  
  2919. void r191finalize(T191* C){
  2920. T0* _rf=NULL;
  2921. T0* _rc=NULL;
  2922. _rf=(/*RF2*/(C)->_run_feature/*16*/);
  2923. _rc=X52run_class(/*SSWARF2*//*X334current_type*/(/*RF2*/(((T368*)_rf))->_current_type/*8*/));
  2924. (/*SFN*/C->_run_feature)=r50dynamic((T50*)(/*(IRF4.6first*/((/*RF2*/((T53*)((/*RF2*/(((T50*)_rc))->_running/*9*/)))->_storage/*0*/))[0]/*)*/),_rf);
  2925. }
  2926.  
  2927.  
  2928. void r191error(T68 a1,T0* a2){
  2929. r66add_position(a1);
  2930. /*[IRF3.6append*/{T0* b1=a2;
  2931. r7append((T7*)(oBC66explanation),b1);
  2932. }/*]*/
  2933. r66print_as_error((T66*)(oBC13eh));
  2934. }
  2935.  
  2936.  
  2937. T0* r191result_type(T191* C){
  2938. T0* R=NULL;
  2939. T0* _tla=NULL;
  2940. R=X334result_type((/*RF2*/(C)->_run_feature/*16*/));
  2941. /*[IF*/
  2942. if(X52is_like_current(R)){
  2943. R=/*SSWARF2*//*X334current_type*/(/*RF2*/((T368*)((/*RF2*/(C)->_run_feature/*16*/)))->_current_type/*8*/);
  2944. }
  2945. else{
  2946. _tla=R;
  2947. if(NULL!=(_tla)){
  2948. switch(((T0*)_tla)->id){
  2949. case 257:
  2950. break;
  2951. default:
  2952. _tla=NULL;
  2953. }
  2954. }/*[IF*/
  2955. if((_tla)!=((void*)(NULL))){
  2956. R=X52run_type(X104result_type(r191arg1(C)));
  2957. }
  2958. /*FI]*/
  2959. }
  2960. /*FI]*/
  2961. return R;
  2962. }
  2963.  
  2964.  
  2965. T0* r191arg1(T191* C){
  2966. T0* R=NULL;
  2967. R=/*SSFRF4*//*X139first*//*(IRF4.3first*/(/*RF2*/((T139*)((/*RF2*/(C)->_arguments/*8*/)))->_first_one/*4*/)/*)*/;
  2968. return R;
  2969. }
  2970.  
  2971.  
  2972. T6 r191call_proc_call_stupid_switch(T191* C,T0* a1){
  2973. T6 R=0;
  2974. /*[IF*/
  2975. if(((/*RF2*/(C)->_arguments/*8*/))==((void*)(NULL))){
  2976. R=1;
  2977. }
  2978. else{
  2979. R=/*SSFRF4*//*X139stupid_switch*/r139stupid_switch((T139*)((/*RF2*/(C)->_arguments/*8*/)),a1);
  2980. }
  2981. /*FI]*/
  2982. /*[IF*/
  2983. if(R){
  2984. /*[IF*/
  2985. if(X104is_current((/*RF2*/(C)->_target/*4*/))){
  2986. /*[IF*/
  2987. if(r49same_base_feature((/*RF2*/(C)->_run_feature/*16*/),a1)){
  2988. R=(X334stupid_switch((/*RF2*/(C)->_run_feature/*16*/),a1))!=((void*)(NULL));
  2989. }
  2990. else{
  2991. R=0;
  2992. }
  2993. /*FI]*/
  2994. }
  2995. else{
  2996. R=X104stupid_switch((/*RF2*/(C)->_target/*4*/),a1);
  2997. }
  2998. /*FI]*/
  2999. }
  3000. /*FI]*/
  3001. return R;
  3002. }
  3003.  
  3004.  
  3005. T0* r191run_feature_for(T191* C,T0* a1,T0* a2){
  3006. T0* R=NULL;
  3007. T0* _bc=NULL;
  3008. T0* _rt=NULL;
  3009. T0* _rc=NULL;
  3010. _rt=X104result_type(a1);
  3011. /*[IF*/
  3012. if((_rt)!=((void*)(NULL))){
  3013. _rc=X52run_class(_rt);
  3014. /*[IF*/
  3015. if((_rc)!=((void*)(NULL))){
  3016. _bc=r50base_class(((T50*)_rc));
  3017. R=r51run_feature_for(((T51*)_bc),_rc,a1,(/*RF2*/(C)->_feature_name/*12*/),a2);
  3018. }
  3019. /*FI]*/
  3020. }
  3021. /*FI]*/
  3022. /*[IF*/
  3023. if((R)==((void*)(NULL))){
  3024. r66add_position((/*RF2*/((T129*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
  3025. /*[IRF3.6append*/{T0* b1=((T0*)ms116_39025);
  3026. r7append((T7*)(oBC66explanation),b1);
  3027. }/*]*/
  3028. r66print_as_fatal_error((T66*)(oBC13eh));
  3029. }
  3030. /*FI]*/
  3031. return R;
  3032. }
  3033.  
  3034.  
  3035. T0* r191static_result_base_class(T191* C){
  3036. T0* R=NULL;
  3037. T0* _cn=NULL;
  3038. T0* _rt=NULL;
  3039. T0* _e_feature=NULL;
  3040. T0* _bc=NULL;
  3041. _bc=X104static_result_base_class((/*RF2*/(C)->_target/*4*/));
  3042. /*[IF*/
  3043. if((_bc)!=((void*)(NULL))){
  3044. _e_feature=r51e_feature(((T51*)_bc),(/*RF2*/(C)->_feature_name/*12*/));
  3045. /*[IF*/
  3046. if((_e_feature)!=((void*)(NULL))){
  3047. _rt=X90result_type(_e_feature);
  3048. /*[IF*/
  3049. if((_rt)!=((void*)(NULL))){
  3050. _cn=X52static_base_class_name(_rt);
  3051. /*[IF*/
  3052. if((_cn)!=((void*)(NULL))){
  3053. R=r61base_class(((T61*)_cn));
  3054. }
  3055. /*FI]*/
  3056. }
  3057. /*FI]*/
  3058. }
  3059. /*FI]*/
  3060. }
  3061. /*FI]*/
  3062. return R;
  3063. }
  3064.  
  3065.  
  3066. void r191make(T191* C,T0* a1,T68 a2,T0* a3){
  3067. (/*SFN*/C->_target)=a1;
  3068. {T129*n=((T129*)malloc(sizeof(*n))/*20*/);
  3069. *n=M129;
  3070. r129make(n,r191operator(),a2);
  3071. (/*SFN*/C->_feature_name)=((T0*)n);
  3072. }
  3073. {T139*n=((T139*)malloc(sizeof(*n))/*16*/);
  3074. *n=M139;
  3075. /*[IRF3.3make_1*/((((T139*)(n)))->_first_one)=(a3);
  3076. /*]*/
  3077. (/*SFN*/C->_arguments)=((T0*)n);
  3078. }
  3079. }
  3080.  
  3081.  
  3082. void r191fatal_error(T0* a1){
  3083. /*[IRF3.6append*/{T0* b1=a1;
  3084. r7append((T7*)(oBC66explanation),b1);
  3085. }/*]*/
  3086. r66print_as_fatal_error((T66*)(oBC13eh));
  3087. }
  3088.  
  3089.  
  3090. void r191assertion_check(T191* C,T3 a1){
  3091. /*[IF*/
  3092. if((a1)==(((T3)'R'))){
  3093. X334vape_check_from((/*RF2*/(C)->_run_feature/*16*/),/*(IRF4.6start_position*/(/*RF2*/(((T129*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/);
  3094. }
  3095. /*FI]*/
  3096. X104assertion_check((/*RF2*/(C)->_target/*4*/),a1);
  3097. X104assertion_check(r191arg1(C),a1);
  3098. }
  3099.  
  3100.  
  3101. void r191compile_to_c(T191* C){
  3102. /*[IF*/
  3103. if((r47boost((T47*)(oBC13run_control)))&&(X52is_character(X52run_type(X104result_type((/*RF2*/(C)->_target/*4*/)))))){
  3104. r191c2c_cast_op(C,((T0*)ms14_10800),((T0*)ms15_246));
  3105. }
  3106. else{
  3107. /*[IRF3.6call_proc_call_c2c*/{T191* C1=C;
  3108. r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
  3109. }/*]*/
  3110. }
  3111. /*FI]*/
  3112. }
  3113.  
  3114.  
  3115. T6 r191stupid_switch(T191* C,T0* a1){
  3116. T6 R=0;
  3117. R=r191call_proc_call_stupid_switch(C,a1);
  3118. /*[IF*/
  3119. if(R){
  3120. R=!(X52is_native_array(r191result_type(C)));
  3121. }
  3122. /*FI]*/
  3123. return R;
  3124. }
  3125.  
  3126.  
  3127. void r191c2c_cast_op(T191* C,T0* a1,T0* a2){
  3128. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3129. T3 b1=((T3)'\50');
  3130. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3131. }/*]*/
  3132. /*]*/
  3133. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3134. T3 b1=((T3)'\50');
  3135. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3136. }/*]*/
  3137. /*]*/
  3138. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3139. T3 b1=((T3)'\50');
  3140. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3141. }/*]*/
  3142. /*]*/
  3143. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),a1);
  3144. /*]*/
  3145. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3146. T3 b1=((T3)'\51');
  3147. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3148. }/*]*/
  3149. /*]*/
  3150. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3151. T3 b1=((T3)'\50');
  3152. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3153. }/*]*/
  3154. /*]*/
  3155. X104compile_to_c((/*RF2*/(C)->_target/*4*/));
  3156. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3157. T3 b1=((T3)'\51');
  3158. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3159. }/*]*/
  3160. /*]*/
  3161. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3162. T3 b1=((T3)'\51');
  3163. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3164. }/*]*/
  3165. /*]*/
  3166. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),a2);
  3167. /*]*/
  3168. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3169. T3 b1=((T3)'\50');
  3170. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3171. }/*]*/
  3172. /*]*/
  3173. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3174. T3 b1=((T3)'\50');
  3175. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3176. }/*]*/
  3177. /*]*/
  3178. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),a1);
  3179. /*]*/
  3180. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3181. T3 b1=((T3)'\51');
  3182. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3183. }/*]*/
  3184. /*]*/
  3185. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3186. T3 b1=((T3)'\50');
  3187. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3188. }/*]*/
  3189. /*]*/
  3190. X104compile_to_c(r191arg1(C));
  3191. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3192. T3 b1=((T3)'\51');
  3193. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3194. }/*]*/
  3195. /*]*/
  3196. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3197. T3 b1=((T3)'\51');
  3198. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3199. }/*]*/
  3200. /*]*/
  3201. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3202. T3 b1=((T3)'\51');
  3203. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3204. }/*]*/
  3205. /*]*/
  3206. }
  3207.  
  3208.  
  3209. void r190compile_to_c_old(T190* C){
  3210. X104compile_to_c_old((/*RF2*/(C)->_target/*4*/));
  3211. /*[IF*/
  3212. {/*AT*//*SSPRF3*//*X139compile_to_c_old*/r139compile_to_c_old((T139*)((/*RF2*/(C)->_arguments/*8*/)));
  3213. }
  3214. /*FI]*/
  3215. }
  3216.  
  3217.  
  3218. T0* r190runnable_expression(T0* a1,T0* a2){
  3219. T0* R=NULL;
  3220. R=X104to_runnable(a1,a2);
  3221. /*[IF*/
  3222. if((R)==((void*)(NULL))){
  3223. {T68 se_tmp0;
  3224. r66add_position((*(se_tmp0=X104start_position(a1),&se_tmp0)));
  3225. }
  3226. r190fatal_error(((T0*)ms116_16290));
  3227. }
  3228. /*FI]*/
  3229. return R;
  3230. }
  3231.  
  3232.  
  3233. void r190run_feature_has_result(T190* C){
  3234. /*[IF*/
  3235. if((X334result_type((/*RF2*/(C)->_run_feature/*16*/)))==((void*)(NULL))){
  3236. {T68 se_tmp0;
  3237. r66add_position((*(se_tmp0=X334start_position((/*RF2*/(C)->_run_feature/*16*/)),&se_tmp0)));
  3238. }
  3239. r66add_position((/*RF2*/((T129*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
  3240. r190fatal_error(((T0*)ms115_53215));
  3241. }
  3242. /*FI]*/
  3243. }
  3244.  
  3245.  
  3246. void r190run_feature_match(T190* C,T0* a1){
  3247. r190run_feature_has_result(C);
  3248. X139match_with((/*RF2*/(C)->_arguments/*8*/),(/*RF2*/(C)->_run_feature/*16*/),a1);
  3249. }
  3250.  
  3251.  
  3252. T0* r190add_comment(T190* C,T0* a1){
  3253. T0* R=NULL;
  3254. /*[IF*/
  3255. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
  3256. R=((T0*)(C));
  3257. }
  3258. else{
  3259. {T229*n=((T229*)malloc(sizeof(*n))/*12*/);
  3260. *n=M229;
  3261. r229make(n,(T0*)C,a1);
  3262. R=((T0*)n);
  3263. }
  3264. }
  3265. /*FI]*/
  3266. return R;
  3267. }
  3268.  
  3269.  
  3270. void r190with(T190* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  3271. (/*SFN*/C->_target)=a1;
  3272. (/*SFN*/C->_feature_name)=a2;
  3273. (/*SFN*/C->_arguments)=a3;
  3274. (/*SFN*/C->_run_feature)=a4;
  3275. r190run_feature_match(C,a5);
  3276. }
  3277.  
  3278.  
  3279. void r190mapping_c_target(T190* C,T0* a1){
  3280. T0* _actual_type=NULL;
  3281. T6 _flag=0;
  3282. _flag=r325call_invariant_start(a1);
  3283. _actual_type=X52run_type(r190result_type(C));
  3284. /*[IF*/
  3285. if(X52is_reference(_actual_type)){
  3286. /*[IF*/
  3287. if(X52is_reference(a1)){
  3288. X52mapping_cast(a1);
  3289. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3290. T3 b1=((T3)'\50');
  3291. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3292. }/*]*/
  3293. /*]*/
  3294. r190compile_to_c(C);
  3295. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3296. T3 b1=((T3)'\51');
  3297. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3298. }/*]*/
  3299. /*]*/
  3300. }
  3301. else{
  3302. r190compile_to_c(C);
  3303. }
  3304. /*FI]*/
  3305. }
  3306. else{
  3307. /*[IF*/
  3308. if(X52is_reference(a1)){
  3309. r190compile_to_c(C);
  3310. }
  3311. else{
  3312. /*[IF*/
  3313. if(X52need_c_struct(a1)){
  3314. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3315. T3 b1=((T3)'\46');
  3316. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3317. }/*]*/
  3318. /*]*/
  3319. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3320. T3 b1=((T3)'\50');
  3321. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3322. }/*]*/
  3323. /*]*/
  3324. r190compile_to_c(C);
  3325. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3326. T3 b1=((T3)'\51');
  3327. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3328. }/*]*/
  3329. /*]*/
  3330. }
  3331. else{
  3332. r190compile_to_c(C);
  3333. }
  3334. /*FI]*/
  3335. }
  3336. /*FI]*/
  3337. }
  3338. /*FI]*/
  3339. /*[IF*/
  3340. if(_flag){
  3341. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T48* C1=(T48*)(oBC325out_c);
  3342. T3 b1=((T3)'\51');
  3343. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3344. }/*]*/
  3345. /*]*/
  3346. }
  3347. /*FI]*/
  3348. }
  3349.  
  3350.  
  3351. void r190afd_check(T190* C){
  3352. T0* _running=NULL;
  3353. T0* _rc=NULL;
  3354. /*[IF*/
  3355. if(((/*RF2*/(C)->_run_feature/*16*/))!=((void*)(NULL))){
  3356. _rc=X52run_class(X104result_type((/*RF2*/(C)->_target/*4*/)));
  3357. _running=(/*RF2*/(((T50*)_rc))->_running/*9*/);
  3358. /*[IF*/
  3359. if((_running)==((void*)(NULL))){
  3360. }
  3361.  else if((r53count(((T53*)_running)))>(1)){
  3362. r351update((/*RF2*/(C)->_target/*4*/),(/*RF2*/(C)->_run_feature/*16*/));
  3363. }
  3364. /*FI]*/
  3365. }
  3366. /*FI]*/
  3367. X104afd_check((/*RF2*/(C)->_target/*4*/));
  3368. /*[IF*/
  3369. {/*AT*//*SSPRF3*//*X139afd_check*/r139afd_check((T139*)((/*RF2*/(C)->_arguments/*8*/)));
  3370. }
  3371. /*FI]*/
  3372. }
  3373.  
  3374.  
  3375. void r190c_declare_for_old(T190* C){
  3376. X104c_declare_for_old((/*RF2*/(C)->_target/*4*/));
  3377. /*[IF*/
  3378. {/*AT*//*SSPRF3*//*X139c_declare_for_old*/r139c_declare_for_old((T139*)((/*RF2*/(C)->_arguments/*8*/)));
  3379. }
  3380. /*FI]*/
  3381. }
  3382.  
  3383.  
  3384. void r190collect_c_tmp(T190* C){
  3385. /*[IF*/
  3386. if(((/*RF2*/(C)->_run_feature/*16*/))!=((void*)(NULL))){
  3387. X334collect_c_tmp((/*RF2*/(C)->_run_feature/*16*/));
  3388. }
  3389. /*FI]*/
  3390. X104collect_c_tmp((/*RF2*/(C)->_target/*4*/));
  3391. /*[IF*/
  3392. if(((/*RF2*/(C)->_arguments/*8*/))!=((void*)(NULL))){
  3393. /*SSPRF3*//*X139collect_c_tmp*/r139collect_c_tmp((T139*)((/*RF2*/(C)->_arguments/*8*/)));
  3394. }
  3395. /*FI]*/
  3396. }
  3397.  
  3398.  
  3399. T0* r190operator(void){
  3400. T0* R=NULL;
  3401. R=((T0*)ms15_242);
  3402. return R;
  3403. }
  3404.  
  3405.  
  3406. T6 r190use_current(T190* C){
  3407. T6 R=0;
  3408. /*[IF*/
  3409. {/*AT*/R=/*SSFRF4*//*X139use_current*/r139use_current((T139*)((/*RF2*/(C)->_arguments/*8*/)));
  3410. }
  3411. /*FI]*/
  3412. /*[IF*/
  3413. if(R){
  3414. }
  3415.  else if(X104is_current((/*RF2*/(C)->_target/*4*/))){
  3416. R=X334use_current((/*RF2*/(C)->_run_feature/*16*/));
  3417. }
  3418. else{
  3419. R=X104use_current((/*RF2*/(C)->_target/*4*/));
  3420. }
  3421. /*FI]*/
  3422. return R;
  3423. }
  3424.  
  3425.  
  3426. T0* r190runnable_args(T0* a1,T0* a2){
  3427. T0* R=NULL;
  3428. R=X139to_runnable(a1,a2);
  3429. /*[IF*/
  3430. if((R)==((void*)(NULL))){
  3431. {T68 se_tmp0;
  3432. r66add_position((*(se_tmp0=X139start_position(a1),&se_tmp0)));
  3433. }
  3434. r190fatal_error(((T0*)ms14_12870));
  3435. }
  3436. /*FI]*/
  3437. return R;
  3438. }
  3439.  
  3440.  
  3441. T0* r190to_runnable(T190* C,T0* a1){
  3442. T0* R=NULL;
  3443. T0* _target_type=NULL;
  3444. T0* _argument_type=NULL;
  3445. T0* _rf=NULL;
  3446. T0* _a=NULL;
  3447. T0* _t=NULL;
  3448. _t=r190runnable_expression((/*RF2*/(C)->_target/*4*/),a1);
  3449. _a=r190runnable_args((/*RF2*/(C)->_arguments/*8*/),a1);
  3450. _target_type=X104result_type(_t);
  3451. _argument_type=X104result_type(r190arg1(C));
  3452. /*[IF*/
  3453. if(X52is_real(_argument_type)){
  3454. /*[IF*/
  3455. if(X52is_integer(_target_type)){
  3456. _t=r341implicit_cast((T341*)(oBC13conversion_handler),_t,_argument_type);
  3457. }
  3458. /*FI]*/
  3459. }
  3460.  else if(X52is_double(_argument_type)){
  3461. /*[IF*/
  3462. if((X52is_integer(_target_type))||(X52is_real(_target_type))){
  3463. _t=r341implicit_cast((T341*)(oBC13conversion_handler),_t,_argument_type);
  3464. }
  3465. /*FI]*/
  3466. }
  3467. /*FI]*/
  3468. _rf=r190run_feature_for(C,_t,a1);
  3469. /*[IF*/
  3470. if(((/*RF2*/(C)->_run_feature/*16*/))==((void*)(NULL))){
  3471. (/*SFN*/C->_target)=_t;
  3472. (/*SFN*/C->_arguments)=_a;
  3473. (/*SFN*/C->_run_feature)=_rf;
  3474. r190run_feature_match(C,a1);
  3475. R=((T0*)(C));
  3476. }
  3477.  else if(((_t)==((void*)((/*RF2*/(C)->_target/*4*/))))&&((_a)==((void*)((/*RF2*/(C)->_arguments/*8*/))))){
  3478. R=((T0*)(C));
  3479. }
  3480. else{
  3481. {T190*n=((T190*)malloc(sizeof(*n))/*24*/);
  3482. *n=M190;
  3483. r190with(n,_t,(/*RF2*/(C)->_feature_name/*12*/),_a,_rf,a1);
  3484. R=((T0*)n);
  3485. }
  3486. }
  3487. /*FI]*/
  3488. return R;
  3489. }
  3490.  
  3491.  
  3492. T2 r190to_integer(T190* C){
  3493. T2 R=0;
  3494. r190error(/*(IRF4.6start_position*/(/*RF2*/(((T129*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/,((T0*)ms14_45441));
  3495. return R;
  3496. }
  3497.  
  3498.  
  3499. T6 r190is_static(T190* C){
  3500. T6 R=0;
  3501. /*[IF*/
  3502. if(X52is_integer(X104result_type((/*RF2*/(C)->_target/*4*/)))){
  3503. /*[IF*/
  3504. if((X104is_static((/*RF2*/(C)->_target/*4*/)))&&(X104is_static(r190arg1(C)))){
  3505. R=1;
  3506. /*[IF*/
  3507. if((X104static_value((/*RF2*/(C)->_target/*4*/)))<=(X104static_value(r190arg1(C)))){
  3508. (/*SFN*/C->_static_value_mem)=1;
  3509. }
  3510. else{
  3511. (/*SFN*/C->_static_value_mem)=0;
  3512. }
  3513. /*FI]*/
  3514. }
  3515. /*FI]*/
  3516. }
  3517. /*FI]*/
  3518. return R;
  3519. }
  3520.  
  3521.  
  3522. void r190finalize(T190* C){
  3523. T0* _rf=NULL;
  3524. T0* _rc=NULL;
  3525. _rf=(/*RF2*/(C)->_run_feature/*16*/);
  3526. _rc=X52run_class(/*SSWARF2*//*X334current_type*/(/*RF2*/(((T368*)_rf))->_current_type/*8*/));
  3527. (/*SFN*/C->_run_feature)=r50dynamic((T50*)(/*(IRF4.6first*/((/*RF2*/((T53*)((/*RF2*/(((T50*)_rc))->_running/*9*/)))->_storage/*0*/))[0]/*)*/),_rf);
  3528. }
  3529.  
  3530.  
  3531. void r190error(T68 a1,T0* a2){
  3532. r66add_position(a1);
  3533. /*[IRF3.6append*/{T0* b1=a2;
  3534. r7append((T7*)(oBC66explanation),b1);
  3535. }/*]*/
  3536. r66print_as_error((T66*)(oBC13eh));
  3537. }
  3538.  
  3539.  
  3540. T0* r190result_type(T190* C){
  3541. T0* R=NULL;
  3542. T0* _tla=NULL;
  3543. R=X334result_type((/*RF2*/(C)->_run_feature/*16*/));
  3544. /*[IF*/
  3545. if(X52is_like_current(R)){
  3546. R=/*SSWARF2*//*X334current_type*/(/*RF2*/((T368*)((/*RF2*/(C)->_run_feature/*16*/)))->_current_type/*8*/);
  3547. }
  3548. else{
  3549. _tla=R;
  3550. if(NULL!=(_tla)){
  3551. switch(((T0*)_tla)->id){
  3552. case 257:
  3553. break;
  3554. default:
  3555. _tla=NULL;
  3556. }
  3557. }/*[IF*/
  3558. if((_tla)!=((void*)(NULL))){
  3559. R=X52run_type(X104result_type(r190arg1(C)));
  3560. }
  3561. /*FI]*/
  3562. }
  3563. /*FI]*/
  3564. return R;
  3565. }
  3566.  
  3567.  
  3568. T0* r190arg1(T190* C){
  3569. T0* R=NULL;
  3570. R=/*SSFRF4*//*X139first*//*(IRF4.3first*/(/*RF2*/((T139*)((/*RF2*/(C)->_arguments/*8*/)))->_first_one/*4*/)/*)*/;
  3571. return R;
  3572. }
  3573.  
  3574.  
  3575. T6 r190call_proc_call_stupid_switch(T190* C,T0* a1){
  3576. T6 R=0;
  3577. /*[IF*/
  3578. if(((/*RF2*/(C)->_arguments/*8*/))==((void*)(NULL))){
  3579. R=1;
  3580. }
  3581. else{
  3582. R=/*SSFRF4*//*X139stupid_switch*/r139stupid_switch((T139*)((/*RF2*/(C)->_arguments/*8*/)),a1);
  3583. }
  3584. /*FI]*/
  3585. /*[IF*/
  3586. if(R){
  3587. /*[IF*/
  3588. if(X104is_current((/*RF2*/(C)->_target/*4*/))){
  3589. /*[IF*/
  3590. if(r49same_base_feature((/*RF2*/(C)->_run_feature/*16*/),a1)){
  3591. R=(X334stupid_switch((/*RF2*/(C)->_run_feature/*16*/),a1))!=((void*)(NULL));
  3592. }
  3593. else{
  3594. R=0;
  3595. }
  3596. /*FI]*/
  3597. }
  3598. else{
  3599. R=X104stupid_switch((/*RF2*/(C)->_target/*4*/),a1);
  3600. }
  3601. /*FI]*/
  3602. }
  3603. /*FI]*/
  3604. return R;
  3605. }
  3606.  
  3607.  
  3608. T0* r190run_feature_for(T190* C,T0* a1,T0* a2){
  3609. T0* R=NULL;
  3610. T0* _bc=NULL;
  3611. T0* _rt=NULL;
  3612. T0* _rc=NULL;
  3613. _rt=X104result_type(a1);
  3614. /*[IF*/
  3615. if((_rt)!=((void*)(NULL))){
  3616. _rc=X52run_class(_rt);
  3617. /*[IF*/
  3618. if((_rc)!=((void*)(NULL))){
  3619. _bc=r50base_class(((T50*)_rc));
  3620. R=r51run_feature_for(((T51*)_bc),_rc,a1,(/*RF2*/(C)->_feature_name/*12*/),a2);
  3621. }
  3622. /*FI]*/
  3623. }
  3624. /*FI]*/
  3625. /*[IF*/
  3626. if((R)==((void*)(NULL))){
  3627. r66add_position((/*RF2*/((T129*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
  3628. /*[IRF3.6append*/{T0* b1=((T0*)ms116_39025);
  3629. r7append((T7*)(oBC66explanation),b1);
  3630. }/*]*/
  3631. r66print_as_fatal_error((T66*)(oBC13eh));
  3632. }
  3633. /*FI]*/
  3634. return R;
  3635. }
  3636.  
  3637.  
  3638. T0* r190static_result_base_class(T190* C){
  3639. T0* R=NULL;
  3640. T0* _cn=NULL;
  3641. T0* _rt=NULL;
  3642. T0* _e_feature=NULL;
  3643. T0* _bc=NULL;
  3644. _bc=X104static_result_base_class((/*RF2*/(C)->_target/*4*/));
  3645. /*[IF*/
  3646. if((_bc)!=((void*)(NULL))){
  3647. _e_feature=r51e_feature(((T51*)_bc),(/*RF2*/(C)->_feature_name/*12*/));
  3648. /*[IF*/
  3649. if((_e_feature)!=((void*)(NULL))){
  3650. _rt=X90result_type(_e_feature);
  3651. /*[IF*/
  3652. if((_rt)!=((void*)(NULL))){
  3653. _cn=X52static_base_class_name(_rt);
  3654. /*[IF*/
  3655. if((_cn)!=((void*)(NULL))){
  3656. R=r61base_class(((T61*)_cn));
  3657. }
  3658. /*FI]*/
  3659. }
  3660. /*FI]*/
  3661. }
  3662. /*FI]*/
  3663. }
  3664. /*FI]*/
  3665. return R;
  3666. }
  3667.  
  3668.  
  3669. void r190make(T190* C,T0* a1,T68 a2,T0* a3){
  3670. (/*SFN*/C->_target)=a1;
  3671. {T129*n=((T129*)malloc(sizeof(*n))/*20*/);
  3672. *n=M129;
  3673. r129make(n,r190operator(),a2);
  3674. (/*SFN*/C->_feature_name)=((T0*)n);
  3675. }
  3676. {T139*n=((T139*)malloc(sizeof(*n))/*16*/);
  3677. *n=M139;
  3678. /*[IRF3.3make_1*/((((T139*)(n)))->_first_one)=(a3);
  3679. /*]*/
  3680. (/*SFN*/C->_arguments)=((T0*)n);
  3681. }
  3682. }
  3683.  
  3684.  
  3685. void r190fatal_error(T0* a1){
  3686. /*[IRF3.6append*/{T0* b1=a1;
  3687. r7append((T7*)(oBC66explanation),b1);
  3688. }/*]*/
  3689. r66print_as_fatal_error((T66*)(oBC13eh));
  3690. }
  3691.  
  3692.  
  3693. void r190assertion_check(T190* C,T3 a1){
  3694. /*[IF*/
  3695. if((a1)==(((T3)'R'))){
  3696. X334vape_check_from((/*RF2*/(C)->_run_feature/*16*/),/*(IRF4.6start_position*/(/*RF2*/(((T129*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/);
  3697. }
  3698. /*FI]*/
  3699. X104assertion_check((/*RF2*/(C)->_target/*4*/),a1);
  3700. X104assertion_check(r190arg1(C),a1);
  3701. }
  3702.  
  3703.  
  3704. void r190compile_to_c(T190* C){
  3705. /*[IF*/
  3706. if((r47boost((T47*)(oBC13run_control)))&&(X52is_character(X52run_type(X104result_type((/*RF2*/(C)->_target/*4*/)))))){
  3707. r190c2c_cast_op(C,((T0*)ms14_10800),((T0*)ms15_242));
  3708. }
  3709. else{
  3710. /*[IRF3.6call_proc_call_c2c*/{T190* C1=C;
  3711. r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
  3712. }/*]*/
  3713. }
  3714. /*FI]*/
  3715. }
  3716.  
  3717.  
  3718. T6 r190stupid_switch(T190* C,T0* a1){
  3719. T6 R=0;
  3720. R=r190call_proc_call_stupid_switch(C,a1);
  3721. /*[IF*/
  3722. if(R){
  3723. R=!(X52is_native_array(r190result_type(C)));
  3724. }
  3725. /*FI]*/
  3726. return R;
  3727. }
  3728.  
  3729.  
  3730. void r190c2c_cast_op(T190* C,T0* a1,T0* a2){
  3731. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3732. T3 b1=((T3)'\50');
  3733. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3734. }/*]*/
  3735. /*]*/
  3736. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3737. T3 b1=((T3)'\50');
  3738. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3739. }/*]*/
  3740. /*]*/
  3741. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3742. T3 b1=((T3)'\50');
  3743. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3744. }/*]*/
  3745. /*]*/
  3746. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),a1);
  3747. /*]*/
  3748. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3749. T3 b1=((T3)'\51');
  3750. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3751. }/*]*/
  3752. /*]*/
  3753. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3754. T3 b1=((T3)'\50');
  3755. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3756. }/*]*/
  3757. /*]*/
  3758. X104compile_to_c((/*RF2*/(C)->_target/*4*/));
  3759. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3760. T3 b1=((T3)'\51');
  3761. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3762. }/*]*/
  3763. /*]*/
  3764. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3765. T3 b1=((T3)'\51');
  3766. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3767. }/*]*/
  3768. /*]*/
  3769. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),a2);
  3770. /*]*/
  3771. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3772. T3 b1=((T3)'\50');
  3773. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3774. }/*]*/
  3775. /*]*/
  3776. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3777. T3 b1=((T3)'\50');
  3778. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3779. }/*]*/
  3780. /*]*/
  3781. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),a1);
  3782. /*]*/
  3783. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3784. T3 b1=((T3)'\51');
  3785. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3786. }/*]*/
  3787. /*]*/
  3788. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3789. T3 b1=((T3)'\50');
  3790. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3791. }/*]*/
  3792. /*]*/
  3793. X104compile_to_c(r190arg1(C));
  3794. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3795. T3 b1=((T3)'\51');
  3796. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3797. }/*]*/
  3798. /*]*/
  3799. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3800. T3 b1=((T3)'\51');
  3801. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3802. }/*]*/
  3803. /*]*/
  3804. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  3805. T3 b1=((T3)'\51');
  3806. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  3807. }/*]*/
  3808. /*]*/
  3809. }
  3810.  
  3811.  
  3812. T0* r240to_runnable_integer(T240* C,T0* a1){
  3813. T0* R=NULL;
  3814. T0* _v=NULL;
  3815. T0* _ct=NULL;
  3816. /*[IF*/
  3817. if(((/*RF2*/(C)->_e_when/*4*/))==((void*)(NULL))){
  3818. (/*SFN*/C->_e_when)=a1;
  3819. _ct=/*SSWARF2*//*X334current_type*/(/*RF2*/((T368*)(r49top_rf((T49*)(oBC13small_eiffel))))->_current_type/*8*/);
  3820. _v=X104to_runnable((/*RF2*/(C)->_lower/*12*/),_ct);
  3821. /*[IF*/
  3822. if(((_v)!=((void*)(NULL)))&&(X52is_integer(X104result_type(_v)))){
  3823. (/*SFN*/C->_lower)=_v;
  3824. (/*SFN*/C->_lower_value)=X104to_integer((/*RF2*/(C)->_lower/*12*/));
  3825. }
  3826. else{
  3827. {T68 se_tmp0;
  3828. r240error((*(se_tmp0=X104start_position((/*RF2*/(C)->_lower/*12*/)),&se_tmp0)),((T0*)ms14_21528));
  3829. }
  3830. }
  3831. /*FI]*/
  3832. _v=X104to_runnable((/*RF2*/(C)->_upper/*8*/),_ct);
  3833. /*[IF*/
  3834. if(((_v)!=((void*)(NULL)))&&(X52is_integer(X104result_type(_v)))){
  3835. (/*SFN*/C->_upper)=_v;
  3836. (/*SFN*/C->_upper_value)=X104to_integer((/*RF2*/(C)->_upper/*8*/));
  3837. }
  3838. else{
  3839. {T68 se_tmp0;
  3840. r240error((*(se_tmp0=X104start_position((/*RF2*/(C)->_upper/*8*/)),&se_tmp0)),((T0*)ms14_21528));
  3841. }
  3842. }
  3843. /*FI]*/
  3844. r232add_when_item_2((T232*)((/*RF2*/(C)->_e_when/*4*/)),(T0*)C);
  3845. R=((T0*)(C));
  3846. }
  3847. else{
  3848. {T240*n=((T240*)malloc(sizeof(*n))/*24*/);
  3849. *n=M240;
  3850. r240make(n,(/*RF2*/(C)->_lower/*12*/),(/*RF2*/(C)->_upper/*8*/));
  3851. R=((T0*)n);
  3852. }
  3853. R=r240to_runnable_integer(((T240*)R),a1);
  3854. }
  3855. /*FI]*/
  3856. return R;
  3857. }
  3858.  
  3859.  
  3860. void r240make(T240* C,T0* a1,T0* a2){
  3861. (/*SFN*/C->_lower)=a1;
  3862. (/*SFN*/C->_upper)=a2;
  3863. }
  3864.  
  3865.  
  3866. T0* r240to_runnable_character(T240* C,T0* a1){
  3867. T0* R=NULL;
  3868. T0* _v=NULL;
  3869. T0* _ct=NULL;
  3870. /*[IF*/
  3871. if(((/*RF2*/(C)->_e_when/*4*/))==((void*)(NULL))){
  3872. (/*SFN*/C->_e_when)=a1;
  3873. _ct=/*SSWARF2*//*X334current_type*/(/*RF2*/((T368*)(r49top_rf((T49*)(oBC13small_eiffel))))->_current_type/*8*/);
  3874. _v=X104to_runnable((/*RF2*/(C)->_lower/*12*/),_ct);
  3875. /*[IF*/
  3876. if(((_v)!=((void*)(NULL)))&&(X52is_character(X104result_type(_v)))){
  3877. (/*SFN*/C->_lower)=_v;
  3878. (/*SFN*/C->_lower_value)=X104to_integer((/*RF2*/(C)->_lower/*12*/));
  3879. }
  3880. else{
  3881. {T68 se_tmp0;
  3882. r240error((*(se_tmp0=X104start_position((/*RF2*/(C)->_lower/*12*/)),&se_tmp0)),((T0*)ms14_25640));
  3883. }
  3884. }
  3885. /*FI]*/
  3886. _v=X104to_runnable((/*RF2*/(C)->_upper/*8*/),_ct);
  3887. /*[IF*/
  3888. if(((_v)!=((void*)(NULL)))&&(X52is_character(X104result_type(_v)))){
  3889. (/*SFN*/C->_upper)=_v;
  3890. (/*SFN*/C->_upper_value)=X104to_integer((/*RF2*/(C)->_upper/*8*/));
  3891. }
  3892. else{
  3893. {T68 se_tmp0;
  3894. r240error((*(se_tmp0=X104start_position((/*RF2*/(C)->_upper/*8*/)),&se_tmp0)),((T0*)ms14_25640));
  3895. }
  3896. }
  3897. /*FI]*/
  3898. r232add_when_item_2((T232*)((/*RF2*/(C)->_e_when/*4*/)),(T0*)C);
  3899. R=((T0*)(C));
  3900. }
  3901. else{
  3902. {T240*n=((T240*)malloc(sizeof(*n))/*24*/);
  3903. *n=M240;
  3904. r240make(n,(/*RF2*/(C)->_lower/*12*/),(/*RF2*/(C)->_upper/*8*/));
  3905. R=((T0*)n);
  3906. }
  3907. R=r240to_runnable_character(((T240*)R),a1);
  3908. }
  3909. /*FI]*/
  3910. return R;
  3911. }
  3912.  
  3913.  
  3914. T0* r240twin(T240* C){
  3915. T0* R=NULL;
  3916. R=malloc(sizeof(*C));
  3917. *((T240*)R)=*C;
  3918. return R;
  3919. }
  3920.  
  3921.  
  3922. void r240error(T68 a1,T0* a2){
  3923. r66add_position(a1);
  3924. /*[IRF3.6append*/{T0* b1=a2;
  3925. r7append((T7*)(oBC66explanation),b1);
  3926. }/*]*/
  3927. r66print_as_error((T66*)(oBC13eh));
  3928. }
  3929.  
  3930.  
  3931. T68 r240start_position(T240* C){
  3932. T68 R={NULL,0};
  3933. {T68 se_tmp0;
  3934. R=(*(se_tmp0=X104start_position((/*RF2*/(C)->_lower/*12*/)),&se_tmp0));
  3935. }
  3936. return R;
  3937. }
  3938.  
  3939.  
  3940. T0* r150add_comment(T150* C,T0* a1){
  3941. T0* R=NULL;
  3942. /*[IF*/
  3943. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
  3944. R=((T0*)(C));
  3945. }
  3946. else{
  3947. {T229*n=((T229*)malloc(sizeof(*n))/*12*/);
  3948. *n=M229;
  3949. r229make(n,(T0*)C,a1);
  3950. R=((T0*)n);
  3951. }
  3952. }
  3953. /*FI]*/
  3954. return R;
  3955. }
  3956.  
  3957.  
  3958. T0* r150to_runnable(T150* C,T0* a1){
  3959. T0* R=NULL;
  3960. T0* _bc=NULL;
  3961. T0* _rc=NULL;
  3962. /*[IF*/
  3963. if(((/*RF2*/(C)->_current_type/*12*/))==((void*)(NULL))){
  3964. (/*SFN*/C->_current_type)=a1;
  3965. _rc=X52run_class(a1);
  3966. _bc=X52base_class(a1);
  3967. /*[IF*/
  3968. if(r51has(((T51*)_bc),(/*RF2*/(C)->_feature_name/*4*/))){
  3969. (/*SFN*/C->_run_feature)=r50get_rf_with(((T50*)_rc),(/*RF2*/(C)->_feature_name/*4*/));
  3970. r369register_for((T0*)C);
  3971. }
  3972. else{
  3973. {T68 se_tmp0;
  3974. r66add_position((*(se_tmp0=X82start_position((/*RF2*/(C)->_feature_name/*4*/)),&se_tmp0)));
  3975. }
  3976. /*[IRF3.6append*/{T0* b1=((T0*)ms14_554698);
  3977. r7append((T7*)(oBC66explanation),b1);
  3978. }/*]*/
  3979. r66print_as_fatal_error((T66*)(oBC13eh));
  3980. }
  3981. /*FI]*/
  3982. R=((T0*)(C));
  3983. }
  3984. else{
  3985. {T150*n=((T150*)malloc(sizeof(*n))/*16*/);
  3986. *n=M150;
  3987. /*[IRF3.3make*/((((T150*)(n)))->_feature_name)=((/*RF2*/(C)->_feature_name/*4*/));
  3988. /*]*/
  3989. R=((T0*)n);
  3990. }
  3991. R=r150to_runnable(((T150*)R),a1);
  3992. }
  3993. /*FI]*/
  3994. return R;
  3995. }
  3996.  
  3997.  
  3998. T2 r150to_integer(T150* C){
  3999. T2 R=0;
  4000. {T68 se_tmp0;
  4001. r150error((*(se_tmp0=r150start_position(C),&se_tmp0)),((T0*)ms14_45441));
  4002. }
  4003. return R;
  4004. }
  4005.  
  4006.  
  4007. void r150error(T68 a1,T0* a2){
  4008. r66add_position(a1);
  4009. /*[IRF3.6append*/{T0* b1=a2;
  4010. r7append((T7*)(oBC66explanation),b1);
  4011. }/*]*/
  4012. r66print_as_error((T66*)(oBC13eh));
  4013. }
  4014. T0*oBC13type_pointer=NULL;
  4015. int fBC13type_pointer=0;
  4016.  
  4017.  
  4018. T0* r150type_pointer(void){
  4019. if(fBC13type_pointer==0){fBC13type_pointer=1;{
  4020. T68 _unknown_position={NULL,0};
  4021. {T269*n=((T269*)malloc(sizeof(*n))/*8*/);
  4022. *n=M269;
  4023. oBC13type_pointer=((T0*)n);
  4024. r269make(n,_unknown_position);
  4025. }
  4026. }}
  4027. return oBC13type_pointer;
  4028. }
  4029.  
  4030.  
  4031. T0* r150static_result_base_class(void){
  4032. T0* R=NULL;
  4033. R=r49get_class(((T0*)ms15_6776));
  4034. return R;
  4035. }
  4036.  
  4037.  
  4038. void r150compile_to_c(T150* C){
  4039. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms150_9711));
  4040. /*]*/
  4041. X334address_of_c_mapping((/*RF2*/(C)->_run_feature/*8*/));
  4042. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  4043. T3 b1=((T3)'\51');
  4044. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  4045. }/*]*/
  4046. /*]*/
  4047. }
  4048.  
  4049.  
  4050. T68 r150start_position(T150* C){
  4051. T68 R={NULL,0};
  4052. {T68 se_tmp0;
  4053. R=(*(se_tmp0=X82start_position((/*RF2*/(C)->_feature_name/*4*/)),&se_tmp0));
  4054. }
  4055. return R;
  4056. }
  4057.  
  4058.  
  4059. void r40disconnect(T40* C){
  4060. fclose((/*RF2*/(C)->_input_stream/*5*/));
  4061. (/*SFN*/C->_path)=NULL;
  4062. }
  4063.  
  4064.  
  4065. void r40read_line_in(T40* C,T0* a1){
  4066. T8 _stream=NULL;
  4067. T2 _mem=0;
  4068. _stream=(/*RF2*/(C)->_input_stream/*5*/);
  4069. /*[IF*/
  4070. if((/*RF2*/(C)->_push_back_flag/*0*/)){
  4071. (/*SFN*/C->_push_back_flag)=0;
  4072. _mem=(/*RF2*/(C)->_memory/*9*/);
  4073. }
  4074. else{
  4075. _mem=getc((FILE*)(_stream));
  4076. }
  4077. /*FI]*/
  4078. while (!((((_mem)==((EOF)))||((_mem)==(T3code(((T3)'\n')))))||((_mem)==(T3code(((T3)'\15'))))))
  4079. {
  4080. r7extend(((T7*)a1),((T3)(_mem)));
  4081. _mem=getc((FILE*)(_stream));
  4082. }
  4083. /*[IF*/
  4084. if((_mem)==(T3code(((T3)'\15')))){
  4085. _mem=getc((FILE*)(_stream));
  4086. /*[IF*/
  4087. if((_mem)!=(T3code(((T3)'\n')))){
  4088. (/*SFN*/C->_push_back_flag)=1;
  4089. }
  4090. /*FI]*/
  4091. }
  4092. /*FI]*/
  4093. (/*SFN*/C->_memory)=_mem;
  4094. }
  4095.  
  4096.  
  4097. T6 r40same_as(T40* C,T0* a1){
  4098. T6 R=0;
  4099. T2 _c2=0;
  4100. T2 _c1=0;
  4101. T8 _is2=NULL;
  4102. T8 _is1=NULL;
  4103. _is1=(/*RF2*/(C)->_input_stream/*5*/);
  4104. _is2=(/*RF2*/(((T40*)a1))->_input_stream/*5*/);
  4105. while (!(((_c1)!=(_c2))||((_c1)==((EOF)))))
  4106. {
  4107. _c1=getc((FILE*)(_is1));
  4108. _c2=getc((FILE*)(_is2));
  4109. }
  4110. R=(_c1)==(_c2);
  4111. r40disconnect(C);
  4112. r40disconnect(((T40*)a1));
  4113. return R;
  4114. }
  4115.  
  4116.  
  4117. T6 r40end_of_input(T40* C){
  4118. T6 R=0;
  4119. /*[IF*/
  4120. if(!((/*RF2*/(C)->_push_back_flag/*0*/))){
  4121. R=((/*RF2*/(C)->_memory/*9*/))==((EOF));
  4122. }
  4123. /*FI]*/
  4124. return R;
  4125. }
  4126. T0*oBC41last_string=NULL;
  4127.  
  4128.  
  4129. void r40read_character(T40* C){
  4130. /*[IF*/
  4131. if((/*RF2*/(C)->_push_back_flag/*0*/)){
  4132. (/*SFN*/C->_push_back_flag)=0;
  4133. }
  4134. else{
  4135. (/*SFN*/C->_memory)=getc((FILE*)((/*RF2*/(C)->_input_stream/*5*/)));
  4136. }
  4137. /*FI]*/
  4138. }
  4139.  
  4140.  
  4141. void r40read_line(T40* C){
  4142. /*[IRF3.3clear*/((((T7*)((T7*)(oBC41last_string))))->_count)=(0);
  4143. /*]*/
  4144. r40read_line_in(C,oBC41last_string);
  4145. }
  4146.  
  4147.  
  4148. void r40read_word(T40* C){
  4149. r40skip_separators(C);
  4150. /*[IF*/
  4151. if(!(r40end_of_input(C))){
  4152. r40read_character(C);
  4153. }
  4154. /*FI]*/
  4155. /*[IRF3.3clear*/((((T7*)((T7*)(oBC41last_string))))->_count)=(0);
  4156. /*]*/
  4157. while (!((r40end_of_input(C))||(r3is_separator(/*(IRF4.6last_character*/((T3)((/*RF2*/(C)->_memory/*9*/)))/*)*/))))
  4158. {
  4159. r7extend((T7*)(oBC41last_string),/*(IRF4.6last_character*/((T3)((/*RF2*/(C)->_memory/*9*/)))/*)*/);
  4160. r40read_character(C);
  4161. }
  4162. }
  4163.  
  4164.  
  4165. void r40connect_to(T40* C,T0* a1){
  4166. T8 _p=NULL;
  4167. _p=r7to_external(((T7*)a1));
  4168. (/*SFN*/C->_input_stream)=fopen((char*)_p,"r");
  4169. /*[IF*/
  4170. if((NULL!=(/*RF2*/(C)->_input_stream/*5*/))){
  4171. (/*SFN*/C->_push_back_flag)=0;
  4172. (/*SFN*/C->_memory)=T3code(((T3)'\40'));
  4173. (/*SFN*/C->_path)=a1;
  4174. }
  4175. /*FI]*/
  4176. }
  4177.  
  4178.  
  4179. void r40skip_separators(T40* C){
  4180. while (!((r40end_of_input(C))||(!(r3is_separator(/*(IRF4.6last_character*/((T3)((/*RF2*/(C)->_memory/*9*/)))/*)*/)))))
  4181. {
  4182. r40read_character(C);
  4183. }
  4184. /*[IF*/
  4185. if((!(r40end_of_input(C)))&&(!((/*RF2*/(C)->_push_back_flag/*0*/)))){
  4186. /*[IRF3.3unread_character*/((((T40*)(C)))->_push_back_flag)=(1);
  4187. /*]*/
  4188. }
  4189. /*FI]*/
  4190. }
  4191.  
  4192.  
  4193. void r311make(T311* C,T0* a1,T0* a2){
  4194. T2 _i=0;
  4195. (/*SFN*/C->_name_list)=a1;
  4196. _i=/*SSWARF2*//*X312upper*/(/*RF2*/((T176*)((/*RF2*/(C)->_name_list/*4*/)))->_upper/*12*/);
  4197. while (!((_i)==(0)))
  4198. {
  4199. X175set_result_type(X312item((/*RF2*/(C)->_name_list/*4*/),_i),a2);
  4200. _i=(_i)-(1);
  4201. }
  4202. }
  4203.  
  4204.  
  4205. void r311append_in(T311* C,T0* a1){
  4206. T2 _i=0;
  4207. _i=/*SSWARF2*//*X312lower*/(/*RF2*/((T176*)((/*RF2*/(C)->_name_list/*4*/)))->_lower/*16*/);
  4208. while (!((_i)>(/*SSWARF2*//*X312upper*/(/*RF2*/((T176*)((/*RF2*/(C)->_name_list/*4*/)))->_upper/*12*/))))
  4209. {
  4210. X170add_last(a1,X312item((/*RF2*/(C)->_name_list/*4*/),_i));
  4211. _i=(_i)+(1);
  4212. }
  4213. }
  4214.  
  4215.  
  4216. T2 r311count(T311* C){
  4217. T2 R=0;
  4218. R=/*SSWARF2*//*X312upper*/(/*RF2*/((T176*)((/*RF2*/(C)->_name_list/*4*/)))->_upper/*12*/);
  4219. return R;
  4220. }
  4221.  
  4222.  
  4223. T0* r163add_comment(T163* C,T0* a1){
  4224. T0* R=NULL;
  4225. /*[IF*/
  4226. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
  4227. R=((T0*)(C));
  4228. }
  4229. else{
  4230. {T229*n=((T229*)malloc(sizeof(*n))/*12*/);
  4231. *n=M229;
  4232. r229make(n,(T0*)C,a1);
  4233. R=((T0*)n);
  4234. }
  4235. }
  4236. /*FI]*/
  4237. return R;
  4238. }
  4239.  
  4240.  
  4241. T0* r163to_runnable(T163* C,T0* a1){
  4242. T0* R=NULL;
  4243. T0* _ic=NULL;
  4244. /*[IF*/
  4245. if(((/*RF2*/(C)->_result_type/*16*/))==((void*)(NULL))){
  4246. {T165*n=((T165*)malloc(sizeof(*n))/*16*/);
  4247. *n=M165;
  4248. r165make(n,(/*RF2*/((T7*)((/*RF2*/(C)->_value/*12*/)))->_count/*4*/),(/*RF2*/(C)->_start_position/*4*/));
  4249. _ic=((T0*)n);
  4250. }
  4251. {T275*n=((T275*)malloc(sizeof(*n))/*20*/);
  4252. *n=M275;
  4253. r275make(n,(/*RF2*/(C)->_start_position/*4*/),_ic);
  4254. (/*SFN*/C->_result_type)=((T0*)n);
  4255. }
  4256. (/*SFN*/C->_result_type)=r275to_runnable((T275*)((/*RF2*/(C)->_result_type/*16*/)),a1);
  4257. r50set_at_run_time((T50*)(r275run_class((T275*)((/*RF2*/(C)->_result_type/*16*/)))));
  4258. (/*SFN*/C->_hexa)=r7twin((T7*)((/*RF2*/(C)->_value/*12*/)));
  4259. r7to_hexadecimal((T7*)((/*RF2*/(C)->_hexa/*20*/)));
  4260. }
  4261. /*FI]*/
  4262. R=((T0*)(C));
  4263. return R;
  4264. }
  4265.  
  4266.  
  4267. T2 r163to_integer(T163* C){
  4268. T2 R=0;
  4269. r163error((/*RF2*/(C)->_start_position/*4*/),((T0*)ms14_45441));
  4270. return R;
  4271. }
  4272.  
  4273.  
  4274. void r163c_define(T163* C){
  4275. T2 _digit_nb=0;
  4276. T2 _k=0;
  4277. T2 _i=0;
  4278. _digit_nb=(sizeof(T2))*(2);
  4279. _k=((/*RF2*/((T7*)((/*RF2*/(C)->_hexa/*20*/)))->_count/*4*/))%(_digit_nb);
  4280. _i=1;
  4281. /*[IF*/
  4282. if((_k)>(0)){
  4283. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_336));
  4284. /*]*/
  4285. while (!((_k)==(0)))
  4286. {
  4287. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  4288. T3 b1=/*(IRF4.6item*/((/*RF2*/((T7*)((/*RF2*/(C)->_hexa/*20*/)))->_storage/*0*/))[(_i)-(1)]/*)*/;
  4289. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  4290. }/*]*/
  4291. /*]*/
  4292. _i=(_i)+(1);
  4293. _k=(_k)-(1);
  4294. }
  4295. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  4296. T3 b1=((T3)'\54');
  4297. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  4298. }/*]*/
  4299. /*]*/
  4300. }
  4301. /*FI]*/
  4302. while (!((_i)>((/*RF2*/((T7*)((/*RF2*/(C)->_hexa/*20*/)))->_count/*4*/))))
  4303. {
  4304. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_336));
  4305. /*]*/
  4306. _k=_digit_nb;
  4307. while (!((_k)==(0)))
  4308. {
  4309. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  4310. T3 b1=/*(IRF4.6item*/((/*RF2*/((T7*)((/*RF2*/(C)->_hexa/*20*/)))->_storage/*0*/))[(_i)-(1)]/*)*/;
  4311. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  4312. }/*]*/
  4313. /*]*/
  4314. _i=(_i)+(1);
  4315. _k=(_k)-(1);
  4316. }
  4317. /*[IF*/
  4318. if((_i)<=((/*RF2*/((T7*)((/*RF2*/(C)->_hexa/*20*/)))->_count/*4*/))){
  4319. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  4320. T3 b1=((T3)'\54');
  4321. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  4322. }/*]*/
  4323. /*]*/
  4324. }
  4325. /*FI]*/
  4326. }
  4327. }
  4328.  
  4329.  
  4330. void r163error(T68 a1,T0* a2){
  4331. r66add_position(a1);
  4332. /*[IRF3.6append*/{T0* b1=a2;
  4333. r7append((T7*)(oBC66explanation),b1);
  4334. }/*]*/
  4335. r66print_as_error((T66*)(oBC13eh));
  4336. }
  4337.  
  4338.  
  4339. T0* r163static_result_base_class(void){
  4340. T0* R=NULL;
  4341. R=r49get_class(((T0*)ms15_1980));
  4342. return R;
  4343. }
  4344.  
  4345.  
  4346. void r163make(T163* C,T68 a1,T0* a2){
  4347. (/*SFN*/C->_start_position)=a1;
  4348. (/*SFN*/C->_value)=a2;
  4349. }
  4350.  
  4351.  
  4352. void r163compile_to_c(T163* C){
  4353. /*[IF*/
  4354. if(r275is_c_unsigned_ptr((T275*)((/*RF2*/(C)->_result_type/*16*/)))){
  4355. r325register_bit_constant((T325*)(oBC13cpp),(T0*)C);
  4356. }
  4357. else{
  4358. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_336));
  4359. /*]*/
  4360. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),(/*RF2*/(C)->_hexa/*20*/));
  4361. /*]*/
  4362. }
  4363. /*FI]*/
  4364. }
  4365.  
  4366.  
  4367. T0* r221add_comment(T221* C,T0* a1){
  4368. T0* R=NULL;
  4369. /*[IF*/
  4370. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
  4371. R=((T0*)(C));
  4372. }
  4373.  else {/*AT*//*[IF*/
  4374. if((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(1)){
  4375. R=((T0*)(C));
  4376. }
  4377. else{
  4378. {T224*n=((T224*)malloc(sizeof(*n))/*12*/);
  4379. *n=M224;
  4380. r224make(n,(T0*)C,a1);
  4381. R=((T0*)n);
  4382. }
  4383. }
  4384. /*FI]*/
  4385. }
  4386. /*FI]*/
  4387. return R;
  4388. }
  4389.  
  4390.  
  4391. void r221compile_to_c(T221* C){
  4392. T2 _static_value=0;
  4393. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms221_3224));
  4394. /*]*/
  4395. _static_value=r226compile_to_c((T226*)((/*RF2*/(C)->_ifthenlist/*12*/)));
  4396. {int z1=_static_value;
  4397.  
  4398. if((2==z1)){
  4399. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms221_2345));
  4400. /*]*/
  4401. /*[IF*/
  4402. if(((/*RF2*/(C)->_else_compound/*16*/))!=((void*)(NULL))){
  4403. r215compile_to_c((T215*)((/*RF2*/(C)->_else_compound/*16*/)));
  4404. }
  4405. /*FI]*/
  4406. }
  4407.  else 
  4408. if((1==z1)){
  4409. }
  4410.  else {/*[IF*/
  4411. if(((/*RF2*/(C)->_else_compound/*16*/))!=((void*)(NULL))){
  4412. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_1700));
  4413. /*]*/
  4414. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_266));
  4415. /*]*/
  4416. r215compile_to_c((T215*)((/*RF2*/(C)->_else_compound/*16*/)));
  4417. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_270a));
  4418. /*]*/
  4419. }
  4420. /*FI]*/
  4421. }}
  4422. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms221_3240));
  4423. /*]*/
  4424. }
  4425.  
  4426.  
  4427. void r221afd_check(T221* C){
  4428. r226afd_check((T226*)((/*RF2*/(C)->_ifthenlist/*12*/)));
  4429. /*[IF*/
  4430. if(((/*RF2*/(C)->_else_compound/*16*/))!=((void*)(NULL))){
  4431. r215afd_check((T215*)((/*RF2*/(C)->_else_compound/*16*/)));
  4432. }
  4433. /*FI]*/
  4434. }
  4435.  
  4436.  
  4437. T6 r221use_current(T221* C){
  4438. T6 R=0;
  4439. /*[IF*/
  4440. if(r226use_current((T226*)((/*RF2*/(C)->_ifthenlist/*12*/)))){
  4441. R=1;
  4442. }
  4443.  else if(((/*RF2*/(C)->_else_compound/*16*/))!=((void*)(NULL))){
  4444. R=r215use_current((T215*)((/*RF2*/(C)->_else_compound/*16*/)));
  4445. }
  4446. /*FI]*/
  4447. return R;
  4448. }
  4449.  
  4450.  
  4451. T6 r221stupid_switch(T221* C,T0* a1){
  4452. T6 R=0;
  4453. R=(r226stupid_switch((T226*)((/*RF2*/(C)->_ifthenlist/*12*/)),a1))&&((((/*RF2*/(C)->_else_compound/*16*/))==((void*)(NULL)))||(r215stupid_switch((T215*)((/*RF2*/(C)->_else_compound/*16*/)),a1)));
  4454. return R;
  4455. }
  4456.  
  4457.  
  4458. void r221add_if_then(T221* C,T0* a1,T0* a2){
  4459. T0* _ifthen=NULL;
  4460. {T225*n=((T225*)malloc(sizeof(*n))/*12*/);
  4461. *n=M225;
  4462. r225make(n,a1,a2);
  4463. _ifthen=((T0*)n);
  4464. }
  4465. /*[IF*/
  4466. if(((/*RF2*/(C)->_ifthenlist/*12*/))==((void*)(NULL))){
  4467. {T226*n=((T226*)malloc(sizeof(*n))/*8*/);
  4468. *n=M226;
  4469. r226make(n,_ifthen);
  4470. (/*SFN*/C->_ifthenlist)=((T0*)n);
  4471. }
  4472. }
  4473. else{
  4474. /*[IRF3.5add_last*/r227add_last(((T227*)((/*RF2*/((T226*)((/*RF2*/(C)->_ifthenlist/*12*/)))->_list/*0*/))),_ifthen);
  4475. /*]*/
  4476. }
  4477. /*FI]*/
  4478. }
  4479.  
  4480.  
  4481. T0* r221to_runnable(T221* C,T0* a1){
  4482. T0* R=NULL;
  4483. T0* _ec=NULL;
  4484. T0* _itl=NULL;
  4485. T2 _ne=0;
  4486. _ne=/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/;
  4487. /*[IF*/
  4488. if(((/*RF2*/(C)->_current_type/*20*/))==((void*)(NULL))){
  4489. (/*SFN*/C->_current_type)=a1;
  4490. _itl=r226to_runnable((T226*)((/*RF2*/(C)->_ifthenlist/*12*/)),a1);
  4491. /*[IF*/
  4492. if((_itl)==((void*)(NULL))){
  4493. }
  4494. else{
  4495. (/*SFN*/C->_ifthenlist)=_itl;
  4496. }
  4497. /*FI]*/
  4498. /*[IF*/
  4499. if((((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)-(_ne))==(0))&&(((/*RF2*/(C)->_else_compound/*16*/))!=((void*)(NULL)))){
  4500. _ec=r215to_runnable((T215*)((/*RF2*/(C)->_else_compound/*16*/)),a1);
  4501. /*[IF*/
  4502. if((_ec)==((void*)(NULL))){
  4503. }
  4504. else{
  4505. (/*SFN*/C->_else_compound)=_ec;
  4506. }
  4507. /*FI]*/
  4508. }
  4509. /*FI]*/
  4510. /*[IF*/
  4511. if((_itl)!=((void*)(NULL))){
  4512. R=((T0*)(C));
  4513. }
  4514. /*FI]*/
  4515. }
  4516. else{
  4517. R=r221twin(C);
  4518. /*[IRF3.3clear_current_type*/((((T221*)(((T221*)R))))->_current_type)=(NULL);
  4519. /*]*/
  4520. R=r221to_runnable(((T221*)R),a1);
  4521. }
  4522. /*FI]*/
  4523. return R;
  4524. }
  4525.  
  4526.  
  4527. T0* r221twin(T221* C){
  4528. T0* R=NULL;
  4529. R=malloc(sizeof(*C));
  4530. *((T221*)R)=*C;
  4531. return R;
  4532. }
  4533.  
  4534.  
  4535. void r249make(T249* C,T68 a1,T0* a2,T0* a3){
  4536. (/*SFN*/C->_start_position)=a1;
  4537. (/*SFN*/C->_type)=a2;
  4538. (/*SFN*/C->_writable)=a3;
  4539. }
  4540.  
  4541.  
  4542. void r249fatal_error(T0* a1){
  4543. /*[IRF3.6append*/{T0* b1=a1;
  4544. r7append((T7*)(oBC66explanation),b1);
  4545. }/*]*/
  4546. r66print_as_fatal_error((T66*)(oBC13eh));
  4547. }
  4548.  
  4549.